Projet

Général

Profil

Development #40685

squash des migrations

Ajouté par Benjamin Dauvergne il y a environ 4 ans. Mis à jour il y a environ 2 mois.

Statut:
Solution proposée
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
12 mars 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

En utilisant django-replace-migrations plutôt que la commande Django qui est difficile à utiliser en cas dépendances croisées (on pourra travailler à limiter ces dépendances ensuite, une fois les migrations nettoyées).


Demandes liées

Lié à Authentic 2 - Development #84914: Supprimer les anciennes migrationsNouveau01 février 2024

Actions

Historique

#1

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

  • Sujet changé de custom_user: squash des migrations à auth_*,idp_*: squash des migrations
  • Description mis à jour (diff)
#2

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

  • Description mis à jour (diff)
#3

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

  • Tracker changé de Support à Development
#4

Mis à jour par Frédéric Péters il y a 5 mois

Je suis retombé ici en voyant src/authentic2/auth_migrations_18/ et en me disant que ça pouvait se supprimer. Spoiler : pas si facilement, après avoir retiré les déclarations de dépendances d'autres migrations vers celles-ci, et le MIGRATION_MODULES dans settings.py, les tests échouent).

#5

Mis à jour par Robot Gitea il y a 5 mois

  • Statut changé de Nouveau à En cours

Benjamin Dauvergne (bdauvergne) a ouvert une pull request sur Gitea concernant cette demande :

#6

Mis à jour par Benjamin Dauvergne il y a 4 mois

J'ai quelques warnings à fixer mais la branche tourne, le fait de repartir sur les migrations native pour django.contrib.auth provoque l'apparition de ce warning qui n'est pas bien grave mais qui pourra se corriger :

bdauvergne@revestel:~/wd/eo/authentic$ tox -e manage -- migrate
.pkg: _optional_hooks> python /usr/lib/python3/dist-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: get_requires_for_build_editable> python /usr/lib/python3/dist-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: build_editable> python /usr/lib/python3/dist-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
manage: install_package> python -I -m pip install --force-reinstall --no-deps /home/bdauvergne/.tmp/tox-bdauvergne/authentic/.tmp/package/373/authentic2-5.18.post28+gd974c5f5-0.editable-py3-none-any.whl
manage: commands[0]> ./getlasso3.sh
manage: commands[1]> ./manage.py migrate
Operations to perform:
  Apply all migrations: a2_rbac, admin, auth, authentic2, authentic2_auth_fc, authentic2_auth_oidc, authentic2_auth_saml, authentic2_idp_cas, authentic2_idp_oidc, authenticators, contenttypes, custom_user, journal, mellon, saml, sessions
Running migrations:
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions...
    A problem arose migrating proxy model permissions for custom_user_user to authentic2_ldapuser.

      Permission(s) for authentic2_ldapuser already existed.
      Codenames Q: (AND: ('codename__in', ['add_ldapuser', 'change_ldapuser', 'delete_ldapuser', 'view_ldapuser']))

    Ensure to audit ALL permissions for custom_user_user and authentic2_ldapuser.
 OK
  Applying auth.0012_alter_user_first_name_max_length... OK
.pkg: _exit> python /usr/lib/python3/dist-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
  manage: OK (5.93=setup[1.08]+cmd[0.03,4.81] seconds)
  congratulations :) (6.09 seconds)

En regardant le contenu de auth_permission on voit que les permission pour LDAPUser qu'on utilise pas sont dupliquées :

authentic2=# select * from auth_permission where codename like '%ldapuser';
 id  |         name         | content_type_id |    codename     
-----+----------------------+-----------------+-----------------
 173 | Can add ldap user    |               1 | add_ldapuser
 174 | Can change ldap user |               1 | change_ldapuser
 175 | Can delete ldap user |               1 | delete_ldapuser
 230 | Can add ldap user    |              58 | add_ldapuser
 231 | Can change ldap user |              58 | change_ldapuser
 232 | Can delete ldap user |              58 | delete_ldapuser
 233 | Can view ldap user   |              58 | view_ldapuser

Ce n'est pas bien grave mais on pourra prévoir de nettoyer ça en avance en SQL.

#7

Mis à jour par Robot Gitea il y a 4 mois

  • Statut changé de En cours à Solution proposée
#8

Mis à jour par Benjamin Dauvergne il y a 4 mois

  • Sujet changé de auth_*,idp_*: squash des migrations à squash des migrations
#9

Mis à jour par Benjamin Dauvergne il y a 4 mois

  • Description mis à jour (diff)
#10

Mis à jour par Benjamin Dauvergne il y a 4 mois

La branche fait gagner 10s sur l'initialisation d'une instance (16s -> 6s).


À priori je vais tagger a2 avec une version majeur pour bien marqué les versions avant/après le squash, sait-on jamais si quelqu'un n'était pas à jour.

Je viens de vérifier un point: si certaines anciennes migrations manquent ça plantera avant de mettre la base dans un état incohérent (permettant de downgrader vers la version intermédiaire avant de réappliquer celle avec les migrations squashées)

#15

Mis à jour par Benjamin Dauvergne il y a 4 mois

#16

Mis à jour par Benjamin Dauvergne il y a 4 mois

  • Statut changé de Solution proposée à En cours

Je reporte ce développement à 2024 ça ne sert à rien de bloquer dessus, je verrai pour y réintégrer des futures migrations.

#17

Mis à jour par Robot Gitea il y a environ 2 mois

  • Statut changé de En cours à Solution proposée

Benjamin Dauvergne (bdauvergne) a demandé une relecture de Paul Marillonnet (pmarillonnet) sur une pull request sur Gitea concernant cette demande :

#18

Mis à jour par Robot Gitea il y a environ 2 mois

  • Statut changé de Solution proposée à En cours

Benjamin Dauvergne (bdauvergne) a ouvert une pull request sur Gitea concernant cette demande :

#19

Mis à jour par Robot Gitea il y a environ 2 mois

  • Statut changé de En cours à Solution proposée
#20

Mis à jour par Robot Gitea il y a environ 2 mois

Benjamin Dauvergne (bdauvergne) a demandé une relecture de Paul Marillonnet (pmarillonnet) sur une pull request sur Gitea concernant cette demande :

Formats disponibles : Atom PDF