Projet

Général

Profil

Bug #22873

crash migration si un tenant n'a pas de schema dans la base

Ajouté par Thomas Noël il y a environ 6 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Catégorie:
-
Version cible:
-
Début:
29 mars 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Cas improbable mais possible, un tenant n'a pas de schema. Quand on lance un migrate_schema, ça crashe en disant que django_migrations n'existe pas dans ... le schema public.

C'est parce que :

    def run_migrations(self, schema_name, included_apps):
        if int(self.options.get('verbosity', 1)) >= 1:
            self._notice("=== Running migrate for schema %s" % schema_name)
        connection.set_schema(schema_name)
        command = MigrateCommand()
        command.execute(*self.args, **self.options)
        connection.set_schema_to_public()

Il faudrait appeler connection.set_schema avec include_public=False pour éviter qu'il lance le migrate sur public, en fallback quand le schema du tenant n'existe pas.

NB : ça va toujours planter (c'est une situation très anormale), mais le message d'erreur sera plus explicite (perdu du temps à piger l'affaire hier sur un déploiement bizarre sur la machine d'Emmanuel).


Fichiers


Demandes liées

Lié à Hobo - Development #22892: Conflit tests unitaires et installation multitenantFermé29 mars 2018

Actions

Révisions associées

Révision f3a2cb26 (diff)
Ajouté par Thomas Noël il y a environ 6 ans

never fallback to public on migrate_schemas (#22873)

Historique

#1

Mis à jour par Thomas Noël il y a environ 6 ans

Pas trouvé de test à écrire ; mais Emmanuel va tester l'affaire d'abord sur son truc qui plantouille, et acker si c'est mieux ainsi.

#2

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

Testé, ça améliore l'erreur :

 ProgrammingError: no schema has been selected 

à la place de

ProgrammingError: relation "django_migrations" already exists

ack.

#3

Mis à jour par Thomas Noël il y a environ 6 ans

  • Statut changé de Nouveau à Résolu (à déployer)
commit f3a2cb269b88a16f92ad1905e664c4badfaab4be
Author: Thomas NOEL <tnoel@entrouvert.com>
Date:   Thu Mar 29 10:41:44 2018 +0200

    never fallback to public on migrate_schemas (#22873)

#4

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

#5

Mis à jour par Frédéric Péters il y a plus de 5 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF