o
    ѷ6i
                     @  sp   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	 G dd deZ
G dd	 d	eZG d
d deZdS )    )annotations)BaseDatabaseSchemaEditor)	Operation)
ModelState)cached_propertyc                   @  sP   e Zd ZdZdZddd	ZdddZdddZdddZd ddZ	d!ddZ
dS )"InstallPluginFTnamestrsonamereturnNonec                 C  s   || _ || _d S Nr   r
   )selfr   r
    r   \/var/www/hoanhtaovolam_webdjango/env/lib/python3.10/site-packages/django_mysql/operations.py__init__   s   
zInstallPlugin.__init__	app_labelstater   c                 C     d S r   r   r   r   r   r   r   r   state_forwards      zInstallPlugin.state_forwardsschema_editorr   from_stto_stc                 C  s,   |  |s|d| j d| jf d S d S )NzINSTALL PLUGIN z
 SONAME %s)plugin_installedexecuter   r
   r   r   r   r   r   r   r   r   database_forwards   s
   
zInstallPlugin.database_forwardsc                 C  s"   |  |r|d| j  d S d S )NzUNINSTALL PLUGIN %s)r   r   r   r   r   r   r   database_backwards!   s   
z InstallPlugin.database_backwardsboolc                 C  sR   |j  }|d| jf | d }|dkW  d    S 1 s"w   Y  d S )NziSELECT COUNT(*)
                FROM INFORMATION_SCHEMA.PLUGINS
                WHERE PLUGIN_NAME LIKE %sr   )
connectioncursorr   r   fetchone)r   r   r#   countr   r   r   r   +   s   $zInstallPlugin.plugin_installedc                 C  s   d| j  d| j S )NzInstalls plugin  from r   r   r   r   r   describe6   s   zInstallPlugin.describeN)r   r	   r
   r	   r   r   r   r	   r   r   r   r   
r   r	   r   r   r   r   r   r   r   r   )r   r   r   r!   r   r	   )__name__
__module____qualname__reduces_to_sql
reversibler   r   r   r    r   r(   r   r   r   r   r   	   s    





r   c                   @  sF   e Zd ZdZdZdddZdddZdddZdddZdddZ	dS )InstallSONameTr
   r	   r   r   c                 C  s
   || _ d S r   r
   )r   r
   r   r   r   r   ?      
zInstallSOName.__init__r   r   r   c                 C  r   r   r   r   r   r   r   r   B   r   zInstallSOName.state_forwardsr   r   r   r   c                 C     | d| jf d S )NzINSTALL SONAME %sr   r
   r   r   r   r   r   E      zInstallSOName.database_forwardsc                 C  r4   )NzUNINSTALL SONAME %sr5   r   r   r   r   r    N   r6   z InstallSOName.database_backwardsc                 C  s
   d| j  S )NzInstalls library %sr2   r'   r   r   r   r(   W   r3   zInstallSOName.describeN)r
   r	   r   r   r)   r*   r+   )
r,   r-   r.   r/   r0   r   r   r   r    r(   r   r   r   r   r1   :   s    



		r1   c                   @  st   e Zd Z	d$d%d	d
Zed&ddZd'ddZd(ddZd(ddZd)ddZ	e
d*ddZd$d+d d!Zd*d"d#ZdS ),AlterStorageEngineNr   r	   	to_enginefrom_engine
str | Noner   r   c                 C  s   || _ || _|| _d S r   )r   enginer9   )r   r   r8   r9   r   r   r   r   \   s   
zAlterStorageEngine.__init__r!   c                 C  s
   | j d uS r   )r9   r'   r   r   r   r0   c      
zAlterStorageEngine.reversibler   r   r   c                 C  r   r   r   r   r   r   r   r   g   r   z!AlterStorageEngine.state_forwardsr   r   
from_stateto_statec                 C  s   | j |||| jd d S )Nr;   )_change_enginer;   r   r   r   r=   r>   r   r   r   r   j   s   z$AlterStorageEngine.database_forwardsc                 C  s*   | j d u r	td| j|||| j d d S )Nz!You cannot reverse this operationr?   )r9   NotImplementedErrorr@   rA   r   r   r   r    s   s   
z%AlterStorageEngine.database_backwardsr;   c           	      C  s   |j || j}|jjj}| |jj|rP|j }|	d|j
j|f | d dk}W d    n1 s7w   Y  |r@d S |	dj||j
j|d d S d S )NzSELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES
                       WHERE TABLE_SCHEMA=DATABASE() AND
                             TABLE_NAME = %s AND
                             ENGINE = %sr   z#ALTER TABLE {table} ENGINE={engine})tabler;   )apps	get_modelr   r"   ops
quote_nameallow_migrate_modelaliasr#   r   _metadb_tabler$   format)	r   r   r   r>   r;   	new_modelqnr#   uses_engine_alreadyr   r   r   r@      s*   



z!AlterStorageEngine._change_enginec                 C  s
   | j  S r   )r   lowerr'   r   r   r   
name_lower   r<   zAlterStorageEngine.name_lowerc                 C  s   |  | jkS r   )rP   rQ   )r   r   r   r   r   r   references_model   s   z#AlterStorageEngine.references_modelc                 C  s,   | j r
d| j  }nd}dj| j|| jdS )Nr&    z9Alter storage engine for {model}{from_clause} to {engine})modelfrom_clauser;   )r9   rL   r   r;   )r   rU   r   r   r   r(      s   
zAlterStorageEngine.describer   )r   r	   r8   r	   r9   r:   r   r   )r   r!   r)   )
r   r	   r   r   r=   r   r>   r   r   r   )
r   r	   r   r   r>   r   r;   r	   r   r   r+   )r   r	   r   r:   r   r!   )r,   r-   r.   r   propertyr0   r   r   r    r@   r   rQ   rR   r(   r   r   r   r   r7   [   s    


	
"r7   N)
__future__r   django.db.backends.base.schemar   $django.db.migrations.operations.baser   django.db.migrations.stater   django.utils.functionalr   r   r1   r7   r   r   r   r   <module>   s    1!