Projet

Général

Profil

Bug #23119

Protéger la création de la db d'un tenant avec transaction.atomic()

Ajouté par Benjamin Dauvergne il y a environ 6 ans. Mis à jour il y a environ 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
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

Révision 2263f596 (diff)
Ajouté par Benjamin Dauvergne il y a environ 5 ans

multitenant: wrap schema creation in atomic() (#23119)

Historique

#2

Mis à jour par Benjamin Dauvergne il y a environ 5 ans

Rebasé.

#3

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.

#4

Mis à jour par Benjamin Dauvergne il y a environ 5 ans

Et avec un test de la commande create_tenant je gagne aussi ?

#5

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.

#6

Mis à jour par Benjamin Dauvergne il y a environ 5 ans

Avec test.

#7

Mis à jour par Emmanuel Cazenave il y a environ 5 ans

  • Statut changé de Solution proposée à Solution validée
#8

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)
#9

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

Formats disponibles : Atom PDF