
    h                     N   d dl mZmZmZ d dlmZmZ d dlmZm	Z	 d dl
mZ  G d de      Z G d de      Z G d	 d
e      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d d      Z G d dee      Z G d dee	      Zy)    )get_citext_oidsget_hstore_oidsregister_type_handlers)NotSupportedErrorrouter)AddIndexRemoveIndex)	Operationc                   .    e Zd ZdZd Zd Zd Zd Zd Zy)CreateExtensionTc                     || _         y Nname)selfr   s     e/var/www/html/ranktracker/api/venv/lib/python3.12/site-packages/django/contrib/postgres/operations.py__init__zCreateExtension.__init__   s	    	    c                      y r    )r   	app_labelstates      r   state_forwardszCreateExtension.state_forwards   s    r   c                 `   |j                   j                  dk7  s*t        j                  |j                   j                  |      sy |j                  d|j                  | j                        z         t        j                          t        j                          t        |j                          y )N
postgresqlz!CREATE EXTENSION IF NOT EXISTS %s)
connectionvendorr   allow_migratealiasexecute
quote_namer   r   cache_clearr   r   r   r   schema_editor
from_stateto_states        r   database_forwardsz!CreateExtension.database_forwards   s    $$++|;$$]%=%=%C%CYOAMD\D\]a]f]fDggh##%##% 	}778r   c                    t        j                  |j                  j                  |      sy |j	                  d|j                  | j                        z         t        j                          t        j                          y )NzDROP EXTENSION %s)
r   r   r   r   r    r!   r   r   r"   r   r#   s        r   database_backwardsz"CreateExtension.database_backwards!   s\    ##M$<$<$B$BIN1M4L4LTYY4WWX##%##%r   c                      d| j                   z  S )NzCreates extension %sr   r   s    r   describezCreateExtension.describe)   s    %		11r   N)	__name__
__module____qualname__
reversibler   r   r'   r)   r,   r   r   r   r   r   	   s     J9&2r   r   c                       e Zd Zd Zy)BloomExtensionc                     d| _         y )Nbloomr   r+   s    r   r   zBloomExtension.__init__/   s	    	r   Nr-   r.   r/   r   r   r   r   r2   r2   -   s    r   r2   c                       e Zd Zd Zy)BtreeGinExtensionc                     d| _         y )N	btree_ginr   r+   s    r   r   zBtreeGinExtension.__init__5   s	    	r   Nr5   r   r   r   r7   r7   3   s     r   r7   c                       e Zd Zd Zy)BtreeGistExtensionc                     d| _         y )N
btree_gistr   r+   s    r   r   zBtreeGistExtension.__init__;   s	     	r   Nr5   r   r   r   r;   r;   9   s    !r   r;   c                       e Zd Zd Zy)CITextExtensionc                     d| _         y )Ncitextr   r+   s    r   r   zCITextExtension.__init__A   	    	r   Nr5   r   r   r   r?   r?   ?       r   r?   c                       e Zd Zd Zy)CryptoExtensionc                     d| _         y )Npgcryptor   r+   s    r   r   zCryptoExtension.__init__G   	    	r   Nr5   r   r   r   rE   rE   E       r   rE   c                       e Zd Zd Zy)HStoreExtensionc                     d| _         y )Nhstorer   r+   s    r   r   zHStoreExtension.__init__M   rB   r   Nr5   r   r   r   rK   rK   K   rC   r   rK   c                       e Zd Zd Zy)TrigramExtensionc                     d| _         y )Npg_trgmr   r+   s    r   r   zTrigramExtension.__init__S   s	    	r   Nr5   r   r   r   rO   rO   Q   s    r   rO   c                       e Zd Zd Zy)UnaccentExtensionc                     d| _         y )Nunaccentr   r+   s    r   r   zUnaccentExtension.__init__Y   rH   r   Nr5   r   r   r   rS   rS   W   rI   r   rS   c                       e Zd Zd Zy)NotInTransactionMixinc                 t    |j                   j                  r"t        d| j                  j                  z        y )Nz_The %s operation cannot be executed inside a transaction (set atomic = False on the migration).)r   in_atomic_blockr   	__class__r-   )r   r$   s     r   _ensure_not_in_transactionz0NotInTransactionMixin._ensure_not_in_transaction^   s:    ##33#9..))*  4r   N)r-   r.   r/   r[   r   r   r   rW   rW   ]   s    r   rW   c                   &    e Zd ZdZdZd Zd Zd Zy)AddIndexConcurrentlyzDCreate an index using PostgreSQL's CREATE INDEX CONCURRENTLY syntax.Fc                     d| j                   j                  ddj                  | j                   j                        d| j                  S )NzConcurrently create index z on field(s) z, z
 of model )indexr   joinfields
model_namer+   s    r   r,   zAddIndexConcurrently.describek   s4    JJOOIIdjj''(OO
 	
r   c                     | j                  |       |j                  j                  || j                        }| j	                  |j
                  j                  |      r|j                  || j                  d       y y NT)concurrently)	r[   apps	get_modelrb   allow_migrate_modelr   r   	add_indexr_   r   r   r$   r%   r&   models         r   r'   z&AddIndexConcurrently.database_forwardsr   se    ''6''	4??C##M$<$<$B$BEJ##E4::D#I Kr   c                     | j                  |       |j                  j                  || j                        }| j	                  |j
                  j                  |      r|j                  || j                  d       y y rd   )	r[   rf   rg   rb   rh   r   r   remove_indexr_   rj   s         r   r)   z'AddIndexConcurrently.database_backwardsx   se    ''6)))T__E##M$<$<$B$BEJ&&udjjt&L Kr   Nr-   r.   r/   __doc__atomicr,   r'   r)   r   r   r   r]   r]   g   s    NF
JMr   r]   c                   &    e Zd ZdZdZd Zd Zd Zy)RemoveIndexConcurrentlyzBRemove an index using PostgreSQL's DROP INDEX CONCURRENTLY syntax.Fc                 :    d| j                   d| j                  S )NzConcurrently remove index z from )r   rb   r+   s    r   r,   z RemoveIndexConcurrently.describe   s    9=DOOTTr   c                 T   | j                  |       |j                  j                  || j                        }| j	                  |j
                  j                  |      rK|j                  || j                  f   }|j                  | j                        }|j                  ||d       y y rd   )r[   rf   rg   rb   rh   r   r   modelsmodel_name_lowerget_index_by_namer   rm   )r   r   r$   r%   r&   rk   from_model_stater_   s           r   r'   z)RemoveIndexConcurrently.database_forwards   s    ''6)))T__E##M$<$<$B$BEJ)00D<Q<Q1QR$66tyyAE&&ue$&G Kr   c                 T   | j                  |       |j                  j                  || j                        }| j	                  |j
                  j                  |      rK|j                  || j                  f   }|j                  | j                        }|j                  ||d       y y rd   )r[   rf   rg   rb   rh   r   r   ru   rv   rw   r   ri   )r   r   r$   r%   r&   rk   to_model_stater_   s           r   r)   z*RemoveIndexConcurrently.database_backwards   s    ''6''	4??C##M$<$<$B$BEJ%__Y8M8M-MNN"44TYY?E##E5t#D Kr   Nrn   r   r   r   rr   rr      s    LFUHEr   rr   N)django.contrib.postgres.signalsr   r   r   	django.dbr   r   django.db.migrationsr   r	   $django.db.migrations.operations.baser
   r   r2   r7   r;   r?   rE   rK   rO   rS   rW   r]   rr   r   r   r   <module>r      s     0 6 :!2i !2H_    ! !o o o    M0( M0E3[ Er   