o
    Á=aY
  ã                   @   s°   d dl mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ e dd¡d	d
„ ƒZe dd¡dd„ ƒZ	e dd¡dd„ ƒZ
e dd¡dd„ ƒZe dd¡dd„ ƒZdS )é   )Úexc)Úconfigure_follower)Ú	create_db)Údrop_db)Úgenerate_driver_url)Útemp_table_keyword_argsÚmysqlÚmariadbc                 C   sf   |   ¡ }|dkr|  ¡ }| | ¡rd}| jd||f d |¡}z| ¡  W |S  tjy2   Y d S w )Nr   r	   z%s+%s)Ú
drivername)Úget_backend_nameÚget_dialectÚ_is_mariadb_from_urlÚsetÚupdate_query_stringr   ÚNoSuchModuleError)ÚurlÚdriverÚ	query_strÚbackendÚdialect_clsÚnew_url© r   úY/var/www/html/gps/gps/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/provision.pyr   	   s    

ÿþ
ýÿr   c              	   C   s¤   |  ¡ }zt| ||ƒ W n	 ty   Y nw W d   ƒ n1 s!w   Y  |  ¡ }| d| ¡ | d| ¡ | d| ¡ W d   ƒ d S 1 sKw   Y  d S )Nz(CREATE DATABASE %s CHARACTER SET utf8mb4z4CREATE DATABASE %s_test_schema CHARACTER SET utf8mb4z6CREATE DATABASE %s_test_schema_2 CHARACTER SET utf8mb4)ÚbeginÚ_mysql_drop_dbÚ	ExceptionÚexec_driver_sql©ÚcfgÚengÚidentÚconnr   r   r   Ú_mysql_create_db*   s&   
ÿ€ý
ÿÿÿ"ùr"   c                 C   s   d| | _ d| | _d S )Nz%s_test_schemaz%s_test_schema_2)Útest_schemaÚtest_schema_2)Úconfigr    r   r   r   Ú_mysql_configure_follower>   s   
r&   c                 C   sX   |  ¡ }| d| ¡ | d| ¡ | d| ¡ W d   ƒ d S 1 s%w   Y  d S )NzDROP DATABASE %s_test_schemazDROP DATABASE %s_test_schema_2zDROP DATABASE %s)r   r   r   r   r   r   r   D   s
   
"ýr   c                 C   s
   ddgiS )NÚprefixesÚ	TEMPORARYr   )r   r   r   r   r   Ú_mysql_temp_table_keyword_argsL   s   
r)   N)Ú r   Útesting.provisionr   r   r   r   r   Úfor_dbr"   r&   r   r)   r   r   r   r   Ú<module>   s     


 





