%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/alt/python37/lib/python3.7/site-packages/alembic/testing/__pycache__/
Upload File :
Create Path :
Current File : //opt/alt/python37/lib/python3.7/site-packages/alembic/testing/__pycache__/provision.cpython-37.pyc

B

�M!V��@sLdZddlmZddlmZddlmZddlm	Z	m
Z
ddlmZd	ZGd
d�de
�Zdd
�Zdd�Zdd�Zdd�Zdd�Zejdd��Zejdd��Zejdd��Zejdd��Ze�d�dd ��Ze�d!�d"d#��Ze�d$�d%d&��Ze�d$�d'd(��Ze�d�d)d*��Ze�d!�d+d,��Ze�d�d-d.��Z e�d$�d/d0��Z!d	S)1z�NOTE:  copied/adapted from SQLAlchemy master for backwards compatibility;
   this should be removable when Alembic targets SQLAlchemy 1.0.0
�)�url)�text�)�compat�)�config�engines)�get_url_backend_nameNc@s0eZdZdd�Zedd��Zdd�Zdd�Zd	S)
�registercCs
i|_dS)N)�fns)�self�r
�
/provision.py�__init__szregister.__init__cCst��d�|�S)N�*)r
�for_db)�cls�fnr
r
r�initsz
register.initcs��fdd�}|S)Ncs|�j�<�S)N)r)r)�dbnamerr
r�decorates
z!register.for_db.<locals>.decorater
)rrrr
)rrrrszregister.for_dbcGspt|tj�rt�|�}nt|tj�r*|}n|jj}t|�}||j	krX|j	||f|��S|j	d|f|��SdS)Nr)
�
isinstancerZstring_types�sa_url�make_urlZURL�dbrr	r)r�cfg�argr�backendr
r
r�__call__s
zregister.__call__N)�__name__�
__module__�__qualname__r�classmethodrrrr
r
r
rr

sr
cCs"xt�D]}t||j|�qWdS)N)�_configs_for_db_operation�
_create_dbr)�follower_identrr
r
r�create_follower_db)sr&cCs"xtj��D]}t||�qWdS)N)r�Config�all_configs�_configure_follower)r%rr
r
r�configure_follower/sr*cCsJ|rt||�}t�||�}|����tj�||||�}|rFt||�|S)N)	�_follower_url_from_mainrZtesting_engine�connect�closerr'r
r))Zdb_urlZdb_optsZoptionsZfile_configr%�engrr
r
r�setup_config4s

r/cCs"xt�D]}t||j|�qWdS)N)r#�_drop_dbr)r%rr
r
r�drop_follower_db?sr1ccs�t�}xtj��D]}|j��qWxLtj��D]>}|jj}t|�}||j|j	|j
f}||kr0|V|�|�q0Wxtj��D]}|j��q~WdS)N)�setrr'r(rZdisposerr	ZusernameZhost�database�add)ZhostsrrrZ	host_confr
r
rr#Dsr#cCstd|j��dS)Nz"no DB creation routine for cfg: %s)�NotImplementedErrorr)rr.�identr
r
rr$Ysr$cCstd|j��dS)Nzno DB drop routine for cfg: %s)r5r)rr.r6r
r
rr0^sr0cCsdS)Nr
)rr6r
r
rr)csr)cCst�|�}||_|S)N)rrr3)rr6r
r
rr+hs
r+ZsqlitecCs0t�|�}|jr|jdkr|St�d|�SdS)Nz:memory:zsqlite:///%s.db)rrr3)rr6r
r
r�_sqlite_follower_url_from_mainos
r7Z
postgresqlc	CsZ|��jdd��@}yt|||�WnYnX|�d�}|�d||f�WdQRXdS)N�
AUTOCOMMIT)�isolation_levelzselect current_database()zCREATE DATABASE %s TEMPLATE %s)r,�execution_options�_pg_drop_dbZscalar�execute)rr.r6�connZ	currentdbr
r
r�
_pg_create_dbxs

r>Zmysqlc	Cs`|���N}yt|||�WnYnX|�d|�|�d|�|�d|�WdQRXdS)NzCREATE DATABASE %szCREATE DATABASE %s_test_schemaz CREATE DATABASE %s_test_schema_2)r,�_mysql_drop_dbr<)rr.r6r=r
r
r�_mysql_create_db�s
r@cCsd||_d||_dS)Nz%s_test_schemaz%s_test_schema_2)Ztest_schemaZ
test_schema_2)rr6r
r
r�_mysql_configure_follower�s
rAcCsdS)Nr
)rr.r6r
r
r�_sqlite_create_db�srBc	Cs@|��jdd��&}|jtd�|d�|�d|�WdQRXdS)Nr8)r9z�select pg_terminate_backend(pid) from pg_stat_activity where usename=current_user and pid != pg_backend_pid() and datname=:dname)ZdnamezDROP DATABASE %s)r,r:r<r)rr.r6r=r
r
rr;�s
r;cCsdS)Nr
)rr.r6r
r
r�_sqlite_drop_db�srCc	Csx|���f}y|�d|�WnYnXy|�d|�WnYnXy|�d|�WnYnXWdQRXdS)NzDROP DATABASE %s_test_schemazDROP DATABASE %s_test_schema_2zDROP DATABASE %s)r,r<)rr.r6r=r
r
rr?�s
r?)"�__doc__Zsqlalchemy.enginerrZ
sqlalchemyr�utilr�rrr	ZFOLLOWER_IDENT�objectr
r&r*r/r1r#rr$r0r)r+rr7r>r@rArBr;rCr?r
r
r
r�<module>s0	


Zerion Mini Shell 1.0