
    vd2                     f    d dl Z e j        dk    rd dlmZ nd dlmZ d dlmZ  G d de          ZdS )    N)      )BaseDatabaseSchemaEditor)NOT_PROVIDEDc                   r     e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZd Zd Z fdZ fdZ fdZ xZS )DatabaseSchemaEditorz+RENAME TABLE %(old_table)s TO %(new_table)szMODIFY %(column)s %(type)s NULLz#MODIFY %(column)s %(type)s NOT NULLzMODIFY %(column)s %(type)szCALTER TABLE %(table)s CHANGE %(old_column)s %(new_column)s %(type)sz)ALTER TABLE %(table)s DROP INDEX %(name)sznALTER TABLE %(table)s ADD CONSTRAINT %(name)s FOREIGN KEY (%(column)s) REFERENCES %(to_table)s (%(to_column)s)z/ALTER TABLE %(table)s DROP FOREIGN KEY %(name)sz DROP INDEX %(name)s ON %(table)sz MODIFY %(column)s %(type)s NULL;z$MODIFY %(column)s %(type)s NOT NULL;zGALTER TABLE %(table)s ADD CONSTRAINT %(name)s PRIMARY KEY (%(columns)s)z&ALTER TABLE %(table)s DROP PRIMARY KEYc                 ^    ddl m} |                    |                    |                    S )Nr   )MySQLConverter)mysql.connector.conversionr
   quoteescape)selfvaluer
   s      Y/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/mysql/connector/django/schema.pyquote_valuez DatabaseSchemaEditor.quote_value&   s6    ======##N$9$9%$@$@AAA    c                 :    |                     | j                  dv S )z
        MySQL doesn't accept default values for longtext and longblob
        and implicitly treats these columns as nullable.
        )longtextlongblob)db_type
connection)r   fields     r   skip_defaultz!DatabaseSchemaEditor.skip_default+   s    
 }}T_--1IIIr   c                 z   t          t          |                               ||           |                     |          ry|j        d t
          fvrk|                     |          }|                     d|                     |j	        j
                  |                     |j                  dz  |g           d S d S d S )Nz%UPDATE %(table)s SET %(column)s = %%s)tablecolumn)superr   	add_fieldr   defaultr   effective_defaultexecute
quote_name_metadb_tabler   )r   modelr   r    	__class__s       r   r   zDatabaseSchemaEditor.add_field2   s    "D))33E5AAA e$$ 	$M$)=== $ 6 6u = =LL@)=>>//%,77D D  ""$ $ $ $ $	$ 	$==r   c                 Z   | j         j                            | j                                         |j        j                  }|dk    r<|j        j        D ]/}|j        r&|j        s|	                                dk    rd|_        0t          t          |                               |          S )NInnoDB
ForeignKeyF)r   introspectionget_storage_enginecursorr#   r$   local_fieldsdb_indexuniqueget_internal_typer   r   _model_indexes_sql)r   r%   storager   r&   s       r   r1   z'DatabaseSchemaEditor._model_indexes_sql>   s    //BBO""$$ek&:
 
 h1 + +N +5< +!3355EE &+EN)400CCEJJJr   c                 ~    |j         r|dz  }n|dz  }t          t          |                               ||||          S )Nz NULLz	 NOT NULL)nullr   r   _alter_column_type_sql)r   r   	old_field	new_fieldnew_typer&   s        r   r5   z+DatabaseSchemaEditor._alter_column_type_sqlM   sQ     > 	$HH#H)400GG9i3 3 	3r   )__name__
__module____qualname__sql_rename_tablesql_alter_column_nullsql_alter_column_not_nullsql_alter_column_typesql_rename_columnsql_delete_uniquesql_create_fksql_delete_fksql_delete_indexalter_string_set_nullalter_string_drop_nullsql_create_pksql_delete_pkr   r   r   r1   r5   __classcell__)r&   s   @r   r   r      s        D= E82 DOMEM9>C0M<MB B B
J J J
$ 
$ 
$ 
$ 
$K K K K K	3 	3 	3 	3 	3 	3 	3 	3 	3r   r   )djangoVERSIONdjango.db.backends.base.schemar   django.db.backends.schemadjango.db.modelsr   r    r   r   <module>rP      s   
 	>VGGGGGGGBBBBBB ) ) ) ) ) )I3 I3 I3 I3 I33 I3 I3 I3 I3 I3r   