o
    ïÅ[há
  ã                   @   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 d dlmZ e 	d¡d	d
„ ƒZ
e 	d¡dd„ ƒZe 	d¡dd„ ƒZdd„ Ze 	d¡dd„ ƒZdS )é   )Úcreate_engine)Úexc)Ú	create_db)Údrop_db)Úlog)Úrun_reap_dbs)Úupdate_db_optsZmssqlc                 C   s   d|d< d S )NFZlegacy_schema_aliasing© )Zdb_urlZdb_optsr	   r	   úŠ/home/ubuntu/experiments/live_experiments/Pythonexperiments/Otree/venv/lib/python3.10/site-packages/sqlalchemy/dialects/mssql/provision.pyÚ_mssql_update_db_opts
   s   r   c                 C   s‚   |  ¡ jdd/}| d| ¡ | d| ¡ | d| ¡ | d| ¡ | d¡ | d¡ W d   ƒ d S 1 s:w   Y  d S )	NÚ
AUTOCOMMIT©Zisolation_levelzcreate database %sz1ALTER DATABASE %s SET ALLOW_SNAPSHOT_ISOLATION ONz0ALTER DATABASE %s SET READ_COMMITTED_SNAPSHOT ONzuse %szcreate schema test_schemazcreate schema test_schema_2)ÚconnectÚexecution_optionsÚexecute©ÚcfgÚengÚidentÚconnr	   r	   r
   Ú_mssql_create_db   s   ÿÿ
"ör   c                 C   s@   |  ¡ jdd}t||ƒ W d   ƒ d S 1 sw   Y  d S )Nr   r   )r   r   Ú_mssql_drop_ignorer   r	   r	   r
   Ú_mssql_drop_db   s   "ÿr   c              
   C   sV   z|   d| ¡ t d|¡ W dS  tjy* } zt d|¡ W Y d }~dS d }~ww )Nzdrop database %szReaped db: %sTzcouldn't drop db: %sF)r   r   Úinfor   ZDatabaseErrorÚwarning)r   r   Úerrr	   r	   r
   r   $   s   	€þr   c                 C   sÒ   t  d| ¡ t| ƒ}| ¡ jddM}t  dd |¡¡ | d¡}dd„ |D ƒ}tƒ }|D ]}||v r8| |¡ q-d	 }}	t	|d
ƒD ]\}	}
t
||
ƒrO|d
7 }qBt  d||	¡ W d   ƒ d S 1 sbw   Y  d S )Nzdb reaper connecting to %rr   r   zidentifiers in file: %sz, z›select d.name from sys.databases as d where name like 'TEST_%' and not exists (select session_id from sys.dm_exec_sessions where database_id=d.database_id)c                 S   s   h | ]\}|  ¡ ’qS r	   )Úlower)Ú.0Údbnamer	   r	   r
   Ú	<setcomp>D   s    z"_reap_mssql_dbs.<locals>.<setcomp>é    é   z-Dropped %d out of %d stale databases detected)r   r   r   r   r   Újoinr   ÚsetÚaddÚ	enumerater   )ÚurlZidentsr   r   Zto_reapZ	all_namesZto_dropÚnameZdroppedÚtotalr   r	   r	   r
   Ú_reap_mssql_dbs6   s,   ÿ
€
€ÿ"ìr)   N)Ú r   r   Ztesting.provisionr   r   r   r   r   Zfor_dbr   r   r   r   r)   r	   r	   r	   r
   Ú<module>   s     


