
^Q\                 @   s6   d  d l  Z  d  d l m Z Gd d   d e  Z d S)    N)BaseDatabaseCreationc               @   sI   e  Z d  Z d d   Z d d d d  Z d d   Z d d	 d
  Z d S)DatabaseCreationc             C   s   |  j  j j |  S)N)
connectionopsZ
quote_name)selfname r   L/var/www/dbchiro/venv/build/Django/django/db/backends/postgresql/creation.py_quote_name   s    zDatabaseCreation._quote_nameNc             C   s^   d } | r" | d j  |  7} n  | rG | d j  |  j |   7} n  | rZ d | } n  | S)N z ENCODING '{}'z TEMPLATE {}ZWITH)formatr
   )r   encodingtemplatesuffixr   r   r	   _get_database_create_suffix   s    z,DatabaseCreation._get_database_create_suffixc             C   sO   |  j  j d } | d d  k s, t d   |  j d | d d | j d   S)NZTESTZ	COLLATIONzHPostgreSQL does not support collation setting at database creation time.r   CHARSETr   TEMPLATE)r   settings_dictAssertionErrorr   get)r   Ztest_settingsr   r   r	   sql_table_creation_suffix   s    		
z*DatabaseCreation.sql_table_creation_suffixFc       
      C   sI  |  j  j   |  j  j d } |  j |  d } |  j d |  } d j |  j |  |  } |  j j    } y | j	 |  Wn t
 k
 r>| r d  SyW | d k r t d |  j | |  f  n  | j	 d |  j |   | j	 |  WnF t
 k
 r9}	 z& t j j d |	  t j d  WYd  d  }	 ~	 Xn XYn XWd  QXd  S)	NNAMEr   zCREATE DATABASE {} {}   z,Destroying old test database for alias %s...zDROP DATABASE %sz+Got an error cloning the test database: %s
   )r   closer   Zget_test_db_clone_settingsr   r   r
   Z_nodb_connectioncursorexecute	ExceptionprintZ_get_database_display_strsysstderrwriteexit)
r   number	verbosityZkeepdbZsource_database_nameZtarget_database_namer   Zcreation_sqlr   er   r   r	   _clone_test_db   s(    zDatabaseCreation._clone_test_db)__name__
__module____qualname__r
   r   r   r&   r   r   r   r	   r      s   

r   )r   Z django.db.backends.base.creationr   r   r   r   r   r	   <module>   s   