Bug #48090
v2.78-1~eob90+1 - Migrations manquantes ?
0%
Description
Suite à une mise à jour en v2.78-1~eob90+1 d'Authentic (sur une stretch), un authentic2-manage migrate me retourne des migrations manquantes :
root@gavotte-pp~# authentic2-manage migrate Operations to perform: Apply all migrations: a2_rbac, admin, attribute_aggregator, auth, authentic2, authentic2_auth_fc, authentic2_auth_oidc, authentic2_idp_cas, authentic2_idp_oidc, contenttypes, custom_user, django_rbac, idp, journal, mellon, nonce, saml, sessions Running migrations: No migrations to apply. Your models have changes that are not yet reflected in a migration, and so won't be applied. Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them. root@gavotte-pp~# authentic2-manage makemigrations --dry-run -v 3 Migrations for 'auth': /usr/lib/python3/dist-packages/authentic2/auth_migrations_18/0006_auto_20201028_1100.py - Alter field content_type on permission - Alter field username on user - Alter unique_together for permission (1 constraint(s)) Full migrations file '0006_auto_20201028_1100.py': # -*- coding: utf-8 -*- # Generated by Django 1.11.20 on 2020-10-28 10:00 from __future__ import unicode_literals import django.contrib.auth.validators from django.db import migrations, models import django.db.models.deletion class Migration(migrations.Migration): dependencies = [ ('contenttypes', '0002_remove_content_type_name'), ('auth', '0005_auto_20150526_2303'), ] operations = [ migrations.AlterField( model_name='permission', name='content_type', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType', verbose_name='content type'), ), migrations.AlterField( model_name='user', name='username', field=models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username'), ), migrations.AlterUniqueTogether( name='permission', unique_together=set([('content_type', 'codename')]), ), ] Migrations for 'admin': /usr/lib/python3/dist-packages/django/contrib/admin/migrations/0003_auto_20201028_1100.py - Alter field user on logentry Full migrations file '0003_auto_20201028_1100.py': # -*- coding: utf-8 -*- # Generated by Django 1.11.20 on 2020-10-28 10:00 from __future__ import unicode_literals from django.conf import settings from django.db import migrations, models import django.db.models.deletion class Migration(migrations.Migration): dependencies = [ ('admin', '0002_logentry_remove_auto_add'), ] operations = [ migrations.AlterField( model_name='logentry', name='user', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='user'), ), ] root@gavotte-pp~# dpkg -l authentic2 Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-=====================================================-===============================-===============================-=============================================================================================================== ii authentic2 2.78-1~eob90+1 all Versatile identity server Python module
Note : J'ai sur cette machine un problème de longue date au sujet de migration locale dont je cherche à me débarrasser(cf. #45977). J'essaye de faire la part des choses entre migrations manquantes dans la version courante et conflit avec des migrations locales passées.
Demandes liées
Historique
Mis à jour par Paul Marillonnet il y a plus de 3 ans
J'ai effectivement, à l'exécution du makemigrations
les deux migrations que tu mentionnes dans la description du ticket. Je ne sais pas si c’est un oubli, je vais regarder ça.
Mis à jour par Paul Marillonnet il y a plus de 3 ans
Et le premier migrate_schemas
se passe bien mais au second ce n’est plus la même chanson :
SET CONSTRAINTS "django_admin_log_user_id_c564eba6_fk_custom_user_user_id" IMMEDIATE; ALTER TABLE "django_admin_log" DROP CONSTRAINT "django_admin_log_user_id_c564eba6_fk_custom_user_user_id"; (params ()) ALTER TABLE "django_admin_log" ADD CONSTRAINT "django_admin_log_user_id_c564eba6_fk_custom_user_user_id" FOREIGN KEY ("user_id") REFERENCES "custom_user_user" ("id") DEFERRABLE INITIALLY DEFERRED; (params ()) SET CONSTRAINTS "auth_permission_content_type_id_2f476e4b_fk_django_co" IMMEDIATE; ALTER TABLE "auth_permission" DROP CONSTRAINT "auth_permission_content_type_id_2f476e4b_fk_django_co"; (params ()) ALTER TABLE "auth_permission" ADD CONSTRAINT "auth_permission_content_type_id_2f476e4b_fk_django_co" FOREIGN KEY ("content_type_id") REFERENCES "django_content_type" ("id") DEFERRABLE INITIALLY DEFERRED; (params ()) ALTER TABLE "auth_permission" ADD CONSTRAINT "auth_permission_content_type_id_codename_01ab375a_uniq" UNIQUE ("content_type_id", "codename"); (params ()) Traceback (most recent call last): File "/home/paul/envs/publik-env-py3/lib/python3.8/site-packages/django/db/backends/utils.py", line 64, in execute return self.cursor.execute(sql, params) psycopg2.errors.DuplicateTable: ERREUR: la relation « auth_permission_content_type_id_codename_01ab375a_uniq » existe déjà The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/paul/src/authentic/authentic2-ctl", line 21, in <module> execute_from_command_line(sys.argv[:1] + argv) File "/home/paul/envs/publik-env-py3/lib/python3.8/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line utility.execute() […] File "/home/paul/envs/publik-env-py3/lib/python3.8/site-packages/django/db/backends/utils.py", line 64, in execute return self.cursor.execute(sql, params) File "/home/paul/envs/publik-env-py3/lib/python3.8/site-packages/django/db/utils.py", line 94, in __exit__ six.reraise(dj_exc_type, dj_exc_value, traceback) File "/home/paul/envs/publik-env-py3/lib/python3.8/site-packages/django/utils/six.py", line 685, in reraise raise value.with_traceback(tb) File "/home/paul/envs/publik-env-py3/lib/python3.8/site-packages/django/db/backends/utils.py", line 64, in execute return self.cursor.execute(sql, params) django.db.utils.ProgrammingError: ERREUR: la relation « auth_permission_content_type_id_codename_01ab375a_uniq » existe déjà
Mis à jour par Benjamin Dauvergne il y a plus de 3 ans
Il faut supprimer notre surcharge des migrations des applications Django user et admin :
MIGRATION_MODULES = { 'auth': 'authentic2.auth_migrations_18', 'menu': 'authentic2.menu_migrations', 'dashboard': 'authentic2.dashboard_migrations', }
au passage on peut virer directement dashbord qui n'est plus utilisé depuis un moment (ça vient de django-admin-tools).
Mis à jour par Paul Marillonnet il y a plus de 3 ans
Benjamin Dauvergne a écrit :
Il faut supprimer notre surcharge des migrations des applications Django user et admin :
[...]
Pas pigé ce qui fait que ça casse au second migrate_schemas
.
Tu veux dire par là que remettre dans custom_user/migrations
les migrations relatives à auth et user de authentic2.auth_migrations_18
, puis supprimer la surcharge, viendrait résoudre ce bogue ?
Mis à jour par Paul Marillonnet il y a plus de 3 ans
- Lié à Development #48906: misc : virer les références restantes aux modules dashboard et menu ajouté
Mis à jour par Paul Marillonnet il y a plus de 3 ans
- Lié à Bug #48902: crash sur redemarrage a2 multitenant après mise à jour du SaaS ajouté