
    ؄_
                     (   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j	        d          d	             Z
 ej	        d          d
             Z ej	        d          d             Zd Z ej	        d          d             ZdS )   )create_engine)exc)	create_db)drop_db)log)run_reap_dbs)update_db_optsmssqlc                     d|d<   d S )NFlegacy_schema_aliasing )db_urldb_optss     h/var/www/book.euthymeo.com/html/venv/lib/python3.11/site-packages/sqlalchemy/dialects/mssql/provision.py_mssql_update_db_optsr   
   s    (-G$%%%    c                    |                                                     d          5 }|                    d|z             |                    d|z             |                    d|z             |                    d|z             |                    d           |                    d           d d d            d S # 1 swxY w Y   d S )	N
AUTOCOMMIT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conns       r   _mssql_create_dbr      s   		(	(	(	F	F 
4$)E1222?%G	
 	
 	
 	>F	
 	
 	
 	X%&&&01112333
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4s   BCCCc                     |                                                     d          5 }t          ||           d d d            d S # 1 swxY w Y   d S )Nr   r   )r   r   _mssql_drop_ignorer   s       r   _mssql_drop_dbr"      s    		(	(	(	F	F ($4'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s   AAAc                     	 |                      d|z             t          j        d|           dS # t          j        $ r }t          j        d|           Y d }~dS d }~ww xY w)Nzdrop database %szReaped db: %sTzcouldn't drop db: %sF)r   r   infor   DatabaseErrorwarning)r   r   errs      r   r!   r!   $   sz     	'%/000%(((t   *C000uuuuus   -1 A  AA c                 D   t          j        d|            t          |           }|                                                    d          5 }t          j        dd                    |                     |                    d          }d |D             }t                      }|D ]}||v r|                    |           dx}}	t          |d	          D ]\  }	}
t          ||
          r|d	z  }t          j        d
||	           d d d            d S # 1 swxY w Y   d S )Nzdb reaper connecting to %rr   r   zidentifiers in file: %sz, zselect 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                 :    h | ]\  }|                                 S r   )lower).0dbnames     r   	<setcomp>z"_reap_mssql_dbs.<locals>.<setcomp>D   s"    ===	V\\^^===r          z-Dropped %d out of %d stale databases detected)r   r$   r   r   r   joinr   setadd	enumerater!   )urlidentsr   r   to_reap	all_namesto_dropnamedroppedtotalr,   s              r   _reap_mssql_dbsr<   6   s   H)3///


C		(	(	(	F	F 
$*DIIf,=,=>>>,,/
 
 >=W===	%% 	" 	"Dv~~D!!!%&w22 	 	ME6!$// 1;We	
 	
 	
)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s   B;DDDN) r   r   testing.provisionr   r   r   r   r	   for_dbr   r   r"   r!   r<   r   r   r   <module>r@      s?               * * * * * * ( ( ( ( ( ( $ $ $ $ $ $ - - - - - - / / / / / / w. .  . '4 4 4 ( ( (
  $ W
 
 
 
 
r   