
    +h                        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rd dlmZ  ej                  ej                        	 	 	 	 	 	 dd
       Z ej                  ej                         dd       Z ej                  ej$                        	 	 	 	 	 	 dd       Z ej                  ej(                        	 	 	 	 	 	 dd       Z ej                  ej,                        dd       Z ej                  ej0                        	 	 	 	 	 	 dd       Z ej                  ej4                        	 	 	 	 	 	 dd       Z ej                  ej8                        	 	 	 	 	 	 dd       Z ej                  ej<                        	 	 	 	 	 	 d d       Z ej                  ej@                        d!d       Z! ej                  ejD                        	 	 	 	 	 	 d"d       Z# ej                  ejH                        	 	 	 	 	 	 d#d       Z% ej                  ejL                        	 	 	 	 	 	 d$d       Z' ej                  ejP                        	 	 	 	 	 	 d%d       Z)y	)&    )TYPE_CHECKINGschema   )ops)
Operations   )_copy)TableNc                    | j                   j                  j                  | j                   j                  d       |j                  }|j                  }|j
                  }|j                  }|j                  }|j                  }|j                  }|j                  }	|j                  }
|j                  }|j                  }|j                  }fd}|ri|rg| j                  j!                  |t#        j$                  ||      |      }|j&                  D ]&  } ||      s| j                   j)                  |       (  | j                   j*                  ||f||	|
|||||||d
|j,                   |rn| j                  j!                  || j                  j/                  ||      |      }|j&                  D ]&  } ||      s| j                   j1                  |       ( y y )Nc                 ~    t        | t        j                         xr  | j                   xs | j                        S N)
isinstance	sa_schemaPrimaryKeyConstraint_create_rule)
constraintcompilers    L/var/www/html/venv/lib/python3.12/site-packages/alembic/operations/toimpl.py_count_constraintz'alter_column.<locals>._count_constraint%   s<    j)*H*HII 
'''L:+B+B8+L	
    r   )
nullableserver_defaultnametype_r   existing_typeexisting_server_defaultexisting_nullablecommentexisting_comment)impldialectstatement_compilerr   r   r   modify_typecolumn_name
table_namer   modify_server_defaultmodify_namemodify_nullablemodify_commentr    
schema_objtabler   Columnconstraintsdrop_constraintalter_columnkwcolumnadd_constraint)
operations	operationr   r   r   r   r%   r&   r   r   new_column_namer   r   r    r   tr   r   s                    @r   r0   r0      s    &&99H ++M!33'??!!E''K%%JF44N++O((H&&G 11

 !!''[-8 ( 

 -- 	<J ,//
;	< !JOO   %# 7+) ,,  !!''!!((e< ( 

 -- 	;J ,..z:	; r   c                     i }|j                   |j                   |d<    | j                  j                  |j                  | j                        fi | y N	if_exists)r:   r!   
drop_tableto_tablemigration_contextr4   r5   r1   s      r   r;   r;   O   sR    	B&#--;JOO:778<>r   c                     |j                  | j                        } | j                  j                  |j                  |fd|j
                  i|j                   y )Nr   )	to_columnr=   r!   drop_columnr&   r   r1   )r4   r5   r2   s      r   rA   rA   Y   sS       !=!=>FJOOf-6-=-=AJr   c                     |j                  | j                        }i }|j                  |j                  |d<    | j                  j                  |fi | y Nif_not_exists)to_indexr=   rD   r!   create_index)r4   r5   idxr1   s       r   rF   rF   c   sT     

Z99
:C	B*'55? JOO  ++r   c                     i }|j                   |j                   |d<    | j                  j                  |j                  | j                        fi | y r9   )r:   r!   
drop_indexrE   r=   r>   s      r   rI   rI   n   sR    	B&#--;JOO:778
r   c                     i }|j                   |j                   |d<   |j                  | j                        } | j                  j                  |fi | |S rC   )rD   r<   r=   r!   create_table)r4   r5   r1   r,   s       r   rK   rK   z   sY     
B*'55?z;;<E JOO  -"-Lr   c                 |    | j                   j                  |j                  |j                  |j                         y Nr   )r!   rename_tabler&   new_table_namer   r4   r5   s     r   rN   rN      s4     OO  i66y?O?O ! r   c                 p    |j                  | j                        }| j                  j                  |       y r   )r<   r=   r!   create_table_commentr4   r5   r,   s      r   rR   rR      s,     z;;<EOO((/r   c                 p    |j                  | j                        }| j                  j                  |       y r   )r<   r=   r!   drop_table_commentrS   s      r   rU   rU      s,     z;;<EOO&&u-r   c                    |j                   }|j                  }|j                  }|j                  }|j                  t        |      }| j                  j	                  |||      } | j                  j                  ||fd|i| |j                  D ]8  }t        |t        j                        r| j                  j                  |       : |j                  D ]  }| j                  j                  |        | j                  j                   j"                  xr! | j                  j                   j$                   }	|j&                  }
|
r|	r| j                  j)                  |       y y y )Nr   r   )r&   r2   r   r1   r,   r
   r+   r!   
add_columnr.   r   r   r   r3   indexesrF   r"   supports_commentsinline_commentsr   create_column_comment)r4   r5   r&   r2   r   r1   r7   r   indexwith_commentr   s              r   rW   rW      s6   %%JFF	B||v##Jv#FAJOOz6G&GBGmm 7
*i&D&DEOO**:67  ,$$U+, 	11 	8''777  nnG<--f5  wr   c                 l    | j                   j                  |j                  | j                               y r   )r!   r3   to_constraintr=   rP   s     r   create_constraintr`      s*     OO""
 < <=r   c                     | j                   j                  | j                  j                  |j                  |j
                  |j                  |j                               y rM   )r!   r/   r+   generic_constraintconstraint_namer&   constraint_typer   rP   s     r   r/   r/      sS     OO##00%%  %%##	 	1 	
r   c                 |    | j                   j                  |j                  |j                  |j                         y )N)multiinsert)r!   bulk_insertr,   rowsrf   rP   s     r   rg   rg      s0     OOY5J5J   r   c                 z    | j                   j                  j                  |j                  |j                         y )N)execution_options)r=   r!   executesqltextrj   rP   s     r   execute_sqlrm      s4       %%--Y-H-H . r   )r4   r   r5   zops.AlterColumnOpreturnN)r4   r   r5   zops.DropTableOprn   N)r4   r   r5   zops.DropColumnOprn   N)r4   r   r5   zops.CreateIndexOprn   N)r4   r   r5   zops.DropIndexOprn   N)r4   r   r5   zops.CreateTableOprn   r   )r4   r   r5   zops.RenameTableOprn   N)r4   r   r5   zops.CreateTableCommentOprn   N)r4   r   r5   zops.DropTableCommentOprn   N)r4   r   r5   zops.AddColumnOprn   N)r4   r   r5   zops.AddConstraintOprn   N)r4   r   r5   zops.DropConstraintOprn   N)r4   r   r5   zops.BulkInsertOprn   N)r4   r   r5   zops.ExecuteSQLOprn   N)*typingr   
sqlalchemyr   r    r   baser   util.sqla_compatr
   sqlalchemy.sql.schemar   implementation_forAlterColumnOpr0   DropTableOpr;   DropColumnOprA   CreateIndexOprF   DropIndexOprI   CreateTableOprK   RenameTableOprN   CreateTableCommentOprR   DropTableCommentOprU   AddColumnOprW   AddConstraintOpr`   DropConstraintOpr/   BulkInsertOprg   ExecuteSQLOprm    r   r   <module>r      sA   ! *   $+ s001;;;;)<;;	;; 2;;| s/ 0 s//0);	 1 s001,,)<,	, 2, s/ 0 s001)< 2 s001)<	 2 s77800)C0	0 90 s556..)A.	. 7. s/6 066 s223)>	 4 s334

)?
	
 5
 s//0);	 1 s//0);	 1r   