
    h                         S SK Jr  S SKJrJrJrJrJrJrJ	r	  S SK
Jr  S SKJr  S SKJr  \" \SS5      r\(       a	  \" \5      rO\r " S S	\5      r\rg)
    )get_executor)get_tenant_modelget_public_schema_nameschema_existsget_tenant_database_aliashas_multi_type_tenants"get_multi_type_database_field_nameget_tenant_migration_order)
SyncCommon)import_string)settingsGET_EXECUTOR_FUNCTIONNc                   8   ^  \ rS rSrSrU 4S jrU 4S jrSrU =r$ )MigrateSchemasCommand   zMUpdates database schema. Manages both apps with migrations and those without.c           	        > [         TU ]  U5        UR                  SSSS9  UR                  SSSS9  UR                  SSS	S
SS9  UR                  SSSS
SS9  UR                  SSS[        5       SS9  UR                  SSSSSS9  UR                  SSSSSS9  UR                  SSSSSSS9  UR                  S SS!S"9  UR                  S#SS$S%S&9  UR                  S'SS(S)S&9  UR                  S*SS+S,S&9  g )-N	app_label?z5App label of an application to synchronize the state.)nargshelpmigration_namezpDatabase state will be brought to the state after that migration. Use the name "zero" to unapply all migrations.z	--noinputstore_falseinteractiveTz:Tells Django to NOT prompt the user for input of any kind.)actiondestdefaultr   z--no-initial-dataload_initial_datazITells Django not to load any initial data after database synchronization.z
--databasestoredatabasezHNominates a database to synchronize. Defaults to the "default" database.z--fake
store_truefakeFz4Mark migrations as run without actually running themz--fake-initialfake_initialzDetect if tables already exist and fake-apply initial migrations if so. Make sure that the current database schema matches your initial migration before using this flag. Django will only check for an existing table name.z--listz-llistz9Show a list of all known migrations and which are appliedz--planz=Shows a list of the migration actions that will be performed.)r   r   z--pruneprunez?Delete nonexistent migrations from the django_migrations table.)r   r   r   z--run-syncdb
run_syncdbz+Creates tables for apps without migrations.z--checkcheck_unappliedz;Exits with a non-zero status if unapplied migrations exist.)superadd_argumentsadd_argumentr   )selfparser	__class__s     d/var/www/html/env/lib/python3.13/site-packages/django_tenants/management/commands/migrate_schemas.pyr(   #MigrateSchemasCommand.add_arguments   s   f%Ks!X 	 	Z,C!\ 	 	 
 	KM[_!] 	 	_/L_im!l 	 	nLz$=$? GB 	 	C 	H\PU!W 	 	Y,\`e"\ 	 	] 	Hd<fV[!\ 	 	^H\!` 	 	
 	Il!b 	 	dN<l!N 	 	PIlAR!^ 	 	`    c                   > [         TU ]  " U0 UD6  [        5       U l        U R                  (       a"  U R
                  (       d  U R                  U l        [        U R                  S9" U R                  U R                  5      nU R                  (       a  UR                  U R                  /S9  U R                  (       Ga  U R
                  (       Ga  U R
                  U R                  :w  a  [        U R
                  U R                  R                  SS 5      5      (       d$  [        SR                  U R
                  5      5      e[!        5       (       ae  [#        5       n[%        5       R&                  R)                  SU5      R+                  U R
                  S9R-                  SU5      nUR/                  US9  g U R
                  /nUR                  US9  g [1        5       n[!        5       (       aw  [#        5       n[%        5       R&                  R)                  SU5      R3                  U R                  S9R-                  SU5      nUb  UR4                  " U6 nUR/                  US9  g [%        5       R&                  R)                  S5      R3                  U R                  S9R-                  SSS9nUb  UR4                  " U6 nUR                  US9  g g )	N)codename)tenantsr   zSchema "{}" does not existschema_name)r3   T)flat)r'   handler   PUBLIC_SCHEMA_NAMEsync_publicr3   r   executorargsoptionsrun_migrationssync_tenantr   getRuntimeErrorformatr   r	   r   objectsonlyfiltervalues_listrun_multi_type_migrationsr
   excludeorder_by)r*   r9   r:   r8   type_field_namer2   migration_orderr,   s          r-   r5   MigrateSchemasCommand.handle5   sj   (("8":D$4$4#66D($--@DLLY##T-D-D,E#FD$4$48O8O$O$T%5%5t||7G7G
TX7YZZ&'C'J'J(((* + ++--&H&JO.088==m_]D,<,<=$]OD  66w6G#//0G++G+<"<">)++&H&JO.088==m_] T-D-DE$]OD  '2")"2"2O"D66w6G.088==%''.w$($;$; (/ (==H[%D >I >2 
 '2")"2"2O"D++G+<I r/   )r6   r3   )	__name__
__module____qualname____firstlineno__r   r(   r5   __static_attributes____classcell__)r,   s   @r-   r   r      s    ZD `D/= /=r/   r   )"django_tenants.migration_executorsr   django_tenants.utilsr   r   r   r   r   r	   r
   "django_tenants.management.commandsr   django.utils.module_loadingr   django.confr   getattrr   r   Command r/   r-   <module>rX      s`    ;[ [ [ 9 5    *A4H )*?@(T=J T=n  r/   