Project

General

Profile

Actions

Développement #40685

open

squash des migrations

Added by Benjamin Dauvergne almost 6 years ago. Updated almost 2 years ago.

Status:
Solution proposée
Priority:
Normal
Category:
-
Target version:
-
Start date:
12 March 2020
Due date:
% Done:

0%

Estimated time:
Patch proposed:
No
Planning:
No

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).


Related issues 1 (1 open0 closed)

Related to Authentic 2 - Développement #84914: Supprimer les anciennes migrationsNouveauBenjamin Dauvergne01 February 2024

Actions
Actions #1

Updated by Benjamin Dauvergne almost 6 years ago

  • Subject changed from custom_user: squash des migrations to auth_*,idp_*: squash des migrations
  • Description updated (diff)
Actions #2

Updated by Benjamin Dauvergne almost 6 years ago

  • Description updated (diff)
Actions #3

Updated by Benjamin Dauvergne almost 6 years ago

  • Tracker changed from Support to Développement
Actions #4

Updated by Frédéric Péters about 2 years ago

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).

Actions #5

Updated by Robot Gitea about 2 years ago

  • Status changed from Nouveau to En cours

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

Actions #6

Updated by Benjamin Dauvergne about 2 years ago

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.

Actions #7

Updated by Robot Gitea about 2 years ago

  • Status changed from En cours to Solution proposée
Actions #8

Updated by Benjamin Dauvergne about 2 years ago

  • Subject changed from auth_*,idp_*: squash des migrations to squash des migrations
Actions #9

Updated by Benjamin Dauvergne about 2 years ago

  • Description updated (diff)
Actions #10

Updated by Benjamin Dauvergne about 2 years ago

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)

Actions #15

Updated by Benjamin Dauvergne about 2 years ago

Actions #16

Updated by Benjamin Dauvergne about 2 years ago

  • Status changed from Solution proposée to 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.

Actions #17

Updated by Robot Gitea almost 2 years ago

  • Status changed from En cours to Solution proposée

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

Actions #18

Updated by Robot Gitea almost 2 years ago

  • Status changed from Solution proposée to En cours

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

Actions #19

Updated by Robot Gitea almost 2 years ago

  • Status changed from En cours to Solution proposée
Actions #20

Updated by Robot Gitea almost 2 years ago

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

Actions

Also available in: Atom PDF