L iddlmZddlmZddlmZddlmZddlmZddlmZddlm Z dd lm Z dd lm Z dd l m Z dd l mZdd l mZddl mZddl mZddl mZddl mZddl mZddl mZddl mZej.ddZej.ddZe j.ddZej.ddZdZej.ddZej.ddZej.ddZej.ddZej.ddZy )!)inspect)Integer) create_engine)exc)Column)DropConstraint)ForeignKeyConstraint)MetaData)Table) create_db)"drop_all_schema_objects_pre_tables)drop_db)generate_driver_url)get_temp_table_name)log)normalize_sequence)post_configure_engine) run_reap_dbs)temp_table_keyword_argsmssqlcZ|jdk(rd|jj_yy)NpyodbcF)driverdialectdbapipooling)urlenginefollower_idents i/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mssql/provision.pyrrs% }} ',$!c*|j}|j|d|}|dvr|jd}|dk(r|jddi}|r|j|} |j |S#t j $rYywxYw) N+) drivername)raioodbc)queryr&MARS_ConnectionYes)get_backend_namesetupdate_query_dictupdate_query_string get_dialectrNoSuchModuleError)rr query_strbackendnew_urls r!rr$s""$GggGV!,FG--i8  s*A<<BBcR|jjd5}|jd|z|jd|z|jd|z|jd|z|jd|jddddy#1swYyxYw) N AUTOCOMMITisolation_levelzcreate database %sz1ALTER DATABASE %s SET ALLOW_SNAPSHOT_ISOLATION ONz0ALTER DATABASE %s SET READ_COMMITTED_SNAPSHOT ONzuse %szcreate schema test_schemazcreate schema test_schema_2)connectexecution_optionsexec_driver_sqlcfgengidentconns r!_mssql_create_dbr@;s  ( ( ( F <$ 1E9:  ?% G   > F  X-. 89 :; < < errs r!rBrBPsV  /%78 %(    *C0s*-A AA c4tjd|t|}|jj d5}tjddj ||j d}|Dchc]\}|j}}t}|D]}||vs|j|dx} } t|dD]\} }t||s| dz } tjd | | dddycc}w#1swYyxYw) Nzdb reaper connecting to %rr5r6zidentifiers 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)rz-Dropped %d out of %d stale databases detected) rrErr8r9joinr:lowerr,add enumeraterB) ridentsr=r?to_reapdbname all_namesto_dropnamedroppedtotals r!_reap_mssql_dbsrWasHH )3/  C  ( ( ( F $ *DIIf,=>&& /  6== V\\^= =% "Dv~ D! "%&w2 ME6!$/1    ;We '  >  s*;D=D D,5D"D DDciS)N)r<r=s r!_mssql_temp_table_keyword_argsrZ}s Ir"c d|zS)Nz##rY)r<r= base_names r!_mssql_get_temp_table_namer]s ) r"cB|jjd5}t|}dd|j|jfD]}|j |D]}t |ttdttdt|}t|j||D]U}|jtt|jjg|jj g|dW dddy#1swYyxYw) Nr5r6dbo)schemaxyrT)rT)r8r9r test_schema test_schema_2get_table_namesr r rrget_foreign_keysexecuter r crarb)r<r=r? inspectorr`tnametbfks r!rrs  ( ( ( F$DM UCOOS5F5FG F"22&2A J3(3(! "$-88v8NBLL&0!#24466(F  s C*DDc,|jd|_|S)NrJ)start)r<sequences r!rrs~~ Or"N) sqlalchemyrrr'rrr`rr r r r testing.provisionr rrrrrrrrrfor_dbr@rCrBrWrZr]rYr"r!rssr$**C(44$36-8g&-'- G$%,' < <(( "W  6 ()G$%+#**734,7#$r"