Bug #36560
warning aux lancement des serveurs
0%
Description
Quand je lance les serveurs à la main (ex passerelle-server, combo-sever),
j'ai un warning sur les migrations qui je pense s'applique au schéma public :
You have 211 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): actesweb, admin, airquality, api_entreprise, api_particulier, arcgis, arpege_ecp, astregs, atal, atos_genesys, auth, base, base_adresse, bdp, cartads_cs, choosit, cityweb, clicrdv, cmis, common, contenttypes, csvdatasource, family, feeds, gdc, gesbac, jsondatastore, mdel, mellon, mobyt, okina, opengis, orange, ovh, oxyd, pastell, phonecalls, sessions, solis, sp_fr, vivaticket. Run 'python manage.py migrate' to apply them.
Fichiers
Révisions associées
Historique
Mis à jour par Nicolas Roche il y a plus de 4 ans
- Fichier 0001-migrate_schemas-remove-warning-about-migration-of-pu.patch 0001-migrate_schemas-remove-warning-about-migration-of-pu.patch ajouté
- Tracker changé de Support à Bug
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
J'ai l'impression que ça fonctionne chez moi.
J'entends par là que ça supprime le warning et que ça n'empêche pas de jouer les migrations sur les autres tenants.
Mis à jour par Nicolas Roche il y a plus de 4 ans
- Statut changé de Solution proposée à En cours
arf, sauf qu'il ne m'affiche plus non plus les warnings sur les migrations à faire pour les autres tenants.
Mis à jour par Frédéric Péters il y a plus de 4 ans
Les migrations doivent être jouées sur tous les tenants (et passer ainsi sur le schéma "public"). (et si tu le fais pas c'est pas grave si tu sais que tu ne vas pas sur les tenants). (je zapperais ce ticket).
Mis à jour par Nicolas Roche il y a plus de 4 ans
- Fichier 0001-migrate_schemas-remove-warning-about-migration-of-pu.patch 0001-migrate_schemas-remove-warning-about-migration-of-pu.patch ajouté
- Statut changé de En cours à Solution proposée
Là j'ai remplacé les warning du tenant public par ceux de hobo.multitenant (enfin je crois).
(je zapperais ce ticket)
yep, c'est parce que je devenais fou avec toutes ces migrations qui s'accumulaient sans que j'arrive à les appliquer.
(maintenant je sais que c'est normal, ouf)
Mis à jour par Frédéric Péters il y a plus de 4 ans
Mais, tu peux juste appliquer les migrations et que ça s'arrête là ?
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
Nicolas Roche a écrit :
Là j'ai remplacé les warning du tenant public par ceux de hobo.multitenant (enfin je crois).
(je zapperais ce ticket)
yep, c'est parce que je devenais fou avec toutes ces migrations qui s'accumulaient sans que j'arrive à les appliquer.
(maintenant je sais que c'est normal, ouf)
Je ne vois pas trop ce que tu fais là, tu écrases applied_migrations
à chaque tour de ta boucle, je dirai que le plus simple ce serait de vider complètement check_migrations(), ou vraiment si tu veux le faire tourner d'ajouter une option par défaut à False (et dans ce cas je pense que tu pourrais juste utiliser with tenant_context(tenant): super().check_migrations()
).
Mais vraiment juste mettre pass
ça me parait suffisant.
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
Frédéric Péters a écrit :
Mais, tu peux juste appliquer les migrations et que ça s'arrête là ?
Je n'utilise pas cette commande, mais pour ceux qui le font, avec beaucoup de tenant ça va couter un peu cher un migrate_schemas à chaque fois non ? Déjà que je trouve que runserver met longtemps à se lancer (certainement à cause de ce check).
Mis à jour par Frédéric Péters il y a plus de 4 ans
Sauf que, j'avais oublié, #31042 et du coup le schéma public n'est plus une base fiable. Mais faudrait écrire ça quelque part. Et idéalement pas trop écrire de code, là il y a toute une part,
app_labels = [] for app in apps.get_app_configs(): if app.name in settings.TENANT_APPS: app_labels.append(app.label) loader = MigrationLoader(None) loader.load_disk() all_migrations = set([(app, migration) for app, migration in loader.disk_migrations if app in app_labels]) for tenant in TenantMiddleware.get_tenants(): connection.set_schema(tenant.schema_name, include_public=False) applied_migrations = self.get_applied_migrations(app_labels) if options.get('fake') or options.get('migration_name') or options.get('app_label'): # never skip migrations if explicit migration actions # are given. applied_migrations = []
qui se trouve déjà dans migrate_schemas.
Est-ce qu'on pourrait arriver à, genre, avoir là :
all_labels, all_migrations = get_all_labels_and_migrations() for tenant in TenantMiddleware.get_tenants(): connection.set_schema(tenant.schema_name, include_public=False) applied_migrations = self.get_applied_migrations(app_labels) (...)
et ici,
all_labels, all_migrations = get_all_labels_and_migrations() tenants = TenantMiddleware.get_tenants() if tenants: connection.set_schema(tenants[0].schema_name, include_public=False) applied_migrations = self.get_applied_migrations(app_labels) plan = all_migrations - applied_migrations if plan: print(...)
Mis à jour par Frédéric Péters il y a plus de 4 ans
un migrate_schemas à chaque fois non
Je parlais de lancer migrate_schemas un coup quand il voit qu'il le message, dans l'idée que ça allait au moins s'inscrire dans public et faire disparaitre le message, avant de regarder attentivement et de voir que public n'était plus utilisé, etc.
Mis à jour par Frédéric Péters il y a plus de 4 ans
(et sans revenir sur l'historique qui nous amène donc ici, ça me va de juste voir commitée la version avec "pass" et ignorer tout ça)
Mis à jour par Nicolas Roche il y a plus de 4 ans
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Nicolas Roche il y a plus de 4 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 89e088a65f1d938924c991606f30f71259b39e4d Author: Nicolas ROCHE <nroche@entrouvert.com> Date: Mon Sep 30 17:39:02 2019 +0200 migrate_schemas: remove warning about migration of public schema (#36560)
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Statut changé de Résolu (à déployer) à Solution déployée
migrate_schemas: remove warning about migration of public schema (#36560)