
    h                     B    d dl Z d dlZd dlmZ ddlmZ  G d de      Zy)    N)BaseDatabaseCreation   )DatabaseClientc                   4     e Zd Zd Zd fd	ZddZd Z xZS )DatabaseCreationc                     g }| j                   j                  d   }|d   r|j                  d|d   z         |d   r|j                  d|d   z         dj                  |      S )NTESTCHARSETzCHARACTER SET %s	COLLATIONz
COLLATE %s )
connectionsettings_dictappendjoin)selfsuffixtest_settingss      d/var/www/html/ranktracker/api/venv/lib/python3.12/site-packages/django/db/backends/mysql/creation.pysql_table_creation_suffixz*DatabaseCreation.sql_table_creation_suffix   sg    55f=#MM,}Y/GGH%MM,{)CCDxx    c                     	 t         |   |||       y # t        $ r_}t        |j                        dk  s|j                  d   dk7  r*| j                  d|z         t        j                  d       n Y d }~y d }~ww xY w)Nr   r   i  z+Got an error creating the test database: %s   )super_execute_create_test_db	Exceptionlenargslogsysexit)r   cursor
parameterskeepdbe	__class__s        r   r   z(DatabaseCreation._execute_create_test_db   sl    	G+FJG 	166{Q!&&)t"3FJK 		s    	A=AA88A=c           	         | j                   j                  d   }| j                  |      d   }| j                   j                  j	                  |      | j                         d}| j                         5 }	 | j                  |||       d d d        | j                  ||       y # t        $ r |r
Y d d d        y 	 |dk\  r%| j                  d| j                  ||      d       |j                  d|z         | j                  |||       n?# t        $ r3}| j                  d|z         t        j                  d       Y d }~nd }~ww xY wY w xY w# 1 sw Y   xY w)	NNAME)dbnamer   r   z'Destroying old test database for alias z...zDROP DATABASE %(dbname)sz-Got an error recreating the test database: %sr   )r   r   get_test_db_clone_settingsops
quote_namer   _nodb_cursorr   r   r   _get_database_display_strexecuter   r    	_clone_db)	r   r   	verbosityr#   source_database_nametarget_database_nametest_db_paramsr!   r$   s	            r   _clone_test_dbzDatabaseCreation._clone_test_db   sK   #<<VD#>>vFvNoo))445IJ446
   	 F ,,V^VL	 " 	+-AB   	  	 	  A~ ::9FZ["  NN#=#NO00P   HHLqPQHHQKK  	  	 s[   4E6B$$E/E:ADE	E)E>EEEEEEEc                 
   t        j                  | j                  j                  g       dd  }dg|d d dd|}t        j                  | j                  j                  g       }||d<   t	        j
                  |t        j                        5 }t	        j
                  ||j                  t        j                        5  |j                  j                          d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   	mysqldumpz
--routinesz--events)stdout)stdinr8   )
r   settings_to_cmd_argsr   r   
subprocessPopenPIPEr8   DEVNULLclose)r   r1   r2   	dump_argsdump_cmdload_cmd	dump_procs          r   r/   zDatabaseCreation._clone_db9   s    "778U8UWYZ[\[]^	a)CR.a,a
aL`a!66t7T7TVXY+hz? 	)9!!()2B2B:K]K]^ )  &&()	) 	)) )	) 	)s$   1C9C-C9-C6	2C99D)F)__name__
__module____qualname__r   r   r4   r/   __classcell__)r%   s   @r   r   r   	   s     	C4	)r   r   )r;   r    django.db.backends.base.creationr   clientr   r    r   r   <module>rK      s     
 A "9)+ 9)r   