Tenant — Commandes de Gestion

Des commandes Django manage.py sont fournies pour administrer les schémas tenant depuis la ligne de commande.

Module : src.module.tenant.management.commands

create_tenant_schema

Crée le schéma pour un tenant existant.

python manage.py create_tenant_schema acme-corp

Exécute create_tenant_storage() du backend d’isolation configuré, puis lance les migrations.

migrate_tenant_schemas

Migre un ou tous les schémas tenant.

# Migrer tous les tenants
python manage.py migrate_tenant_schemas

# Migrer un tenant spécifique
python manage.py migrate_tenant_schemas --tenant acme-corp

Affiche un résumé des succès et échecs.

list_tenant_schemas

Affiche la liste de tous les tenants et l’état de leur stockage.

python manage.py list_tenant_schemas

Sortie :

Tenant: acme-corp  | Schema: tenant_acme_corp | Status: active  | Exists: True
Tenant: beta-inc   | Schema: tenant_beta_inc  | Status: active  | Exists: True
Tenant: old-corp   | Schema: tenant_old_corp  | Status: archived | Exists: True

check_tenant_schemas

Détecte les incohérences de migration entre les schémas.

python manage.py check_tenant_schemas

Sortie :

Schema tenant_acme_corp: OK
Schema tenant_beta_inc: DRIFT - Missing migrations: ['0003_add_notes']

clone_tenant_schema

Clone les tables et données d’un tenant vers un nouveau schéma.

python manage.py clone_tenant_schema acme-corp staging-acme

Utile pour créer des environnements de test ou des sandbox.

backup_tenant_schema

Sauvegarde un schéma tenant avec pg_dump.

python manage.py backup_tenant_schema acme-corp --output-dir /backups/

Produit : /backups/tenant_acme_corp_20260323.sql

restore_tenant_schema

Restaure un schéma depuis un dump.

python manage.py restore_tenant_schema acme-corp /backups/tenant_acme_corp_20260323.sql

drop_tenant_schema

Supprime un schéma tenant. Requiert confirmation.

# Avec backup automatique avant suppression
python manage.py drop_tenant_schema acme-corp --confirm --backup

# Sans backup
python manage.py drop_tenant_schema acme-corp --confirm

Warning

DESTRUCTIF. Sans --backup, toutes les données sont perdues irrémédiablement.

create_tenant_superuser

Crée un superuser dans le contexte d’un tenant.

python manage.py create_tenant_superuser --tenant acme-corp

tenant_command

Exécute n’importe quelle commande Django dans le contexte d’un tenant.

# Exécuter des migrations custom dans un tenant spécifique
python manage.py tenant_command loaddata fixtures.json --tenant acme-corp

# Shell dans le contexte d'un tenant
python manage.py tenant_command shell --tenant acme-corp