Bug #23119
Protéger la création de la db d'un tenant avec transaction.atomic()
Début:
12 avril 2018
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Oui
Planning:
Description
Le code est actuellement le suivant:
try: connection.set_schema_to_public() schema = TenantMiddleware.hostname2schema(hostname) tenant = get_tenant_model()(schema_name=schema, domain_url=hostname) if verbosity >= 1: print print self.style.NOTICE("=== Creating schema ") \ + self.style.SQL_TABLE(tenant.schema_name) tenant.create_schema(check_if_exists=True) except Exception as e: os.rmdir(tenant_dir_tmp) raise CommandError('tenant creation failed (%s)' % str(e))
en cas d'erreur dans l'application des migrations ou la db va rester là, je propose d'entourer le tout d'un with atomic()
pour éviter de laisser des bouts derrière nous.
Fichiers
Révisions associées
Historique
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
- Fichier 0001-multitenant-wrap-schema-creation-in-atomic-23119.patch 0001-multitenant-wrap-schema-creation-in-atomic-23119.patch ajouté
- Patch proposed changé de Non à Oui
Mis à jour par Benjamin Dauvergne il y a environ 5 ans
- Fichier 0001-multitenant-wrap-schema-creation-in-atomic-23119.patch 0001-multitenant-wrap-schema-creation-in-atomic-23119.patch ajouté
- Statut changé de Nouveau à Solution proposée
Rebasé.
Mis à jour par Emmanuel Cazenave il y a environ 5 ans
- Statut changé de Solution proposée à Solution validée
Sous réserve que tu testes un déploiement de tenant sur ton public local même si le patch parait limpide.
Mis à jour par Benjamin Dauvergne il y a environ 5 ans
Et avec un test de la commande create_tenant je gagne aussi ?
Mis à jour par Emmanuel Cazenave il y a environ 5 ans
Uniquement si tu as les numéros dans l'ordre.
Si tu rajoute un test unitaire c'est la super cagnotte.
Mis à jour par Benjamin Dauvergne il y a environ 5 ans
- Fichier 0001-multitenant-wrap-schema-creation-in-atomic-23119.patch 0001-multitenant-wrap-schema-creation-in-atomic-23119.patch ajouté
- Statut changé de Solution validée à Solution proposée
Avec test.
Mis à jour par Emmanuel Cazenave il y a environ 5 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Benjamin Dauvergne il y a environ 5 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 2263f596794c22dfd3c9006cd36284af9cc9a810 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Thu Apr 12 11:10:21 2018 +0200 multitenant: wrap schema creation in atomic() (#23119)
Mis à jour par Frédéric Péters il y a environ 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
multitenant: wrap schema creation in atomic() (#23119)