
    h)                     R    S SK r S SKrS SKJr  SSKJrJr  S rS r " S S\5      r	g)	    N)settings   )MigrationExecutorrun_migrationsc           
      (    Uu  pV[        U UUUSUUS9$ )NF)allow_atomicidxcountr   )argsoptionscodenamer
   idx_schema_namer	   schema_names          ^/var/www/html/env/lib/python3.13/site-packages/django_tenants/migration_executors/multiproc.pyrun_migrations_percentr   	   s,    &C     c                 6    Uu  pV[        U UUUS   US   SUUS9$ )Nr   r   F)r   tenant_typer   r	   r
   r   )r   r   r   r
   r   r	   tenants          r   !run_multi_type_migrations_percentr      s6    !KC1I1I	 	r   c                   (    \ rS rSrSrSS jrS rSrg)MultiprocessingExecutor$   multiprocessingNc           	         U=(       d    / nU R                   U;   a`  [        U R                  U R                  U R                  U R                   5        UR                  UR                  U R                   5      5        U(       a  [        [        SS5      n[        [        SS5      nSSK	J
n  X@R                     nUR                  5         S Ul        [        R                  " [         U R                  U R                  U R                  [#        U5      5      n[$        R&                  " US9nUR)                  U[+        U5      U5        g g N$TENANT_MULTIPROCESSING_MAX_PROCESSES   TENANT_MULTIPROCESSING_CHUNKSr   )connections)	processes)PUBLIC_SCHEMA_NAMEr   r   r   r   popindexgetattrr   	django.dbr!   TENANT_DB_ALIASclose
connection	functoolspartialr   lenr   Poolmap	enumerateselftenantsr"   chunksr!   r*   run_migrations_pps           r   r   &MultiprocessingExecutor.run_migrations'   s   -R""g-499dllDMM4CZCZ[KKd&=&=>?6I
 /F .$%9%9:J$(J!(00&		G   $$y9AEE '"5 r   c           	         U=(       d    / n[        [        SS5      n[        [        SS5      nSSKJn  X@R                     nUR                  5         S Ul        [        R                  " [        U R                  U R                  U R                  [        U5      5      n[        R                  " US9nUR!                  U[#        U5      U5        g r   )r&   r   r'   r!   r(   r)   r*   r+   r,   r   r   r   r   r-   r   r.   r/   r0   r1   s           r   run_multi_type_migrations1MultiprocessingExecutor.run_multi_type_migrationsN   s    -R2
	
 +
 	* !5!56
 $
$,,-IILLMML
   95	g	
r    )N)__name__
__module____qualname____firstlineno__r   r   r9   __static_attributes__r;   r   r   r   r   $   s     H%N
r   r   )
r+   r   django.confr   baser   r   r   r   r   r;   r   r   <module>rC      s*        3
I
/ I
r   