Development #40685
squash des migrations
0%
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
Historique
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)
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).
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 :
- URL : https://git.entrouvert.org/entrouvert/authentic/pulls/219
- Titre : WIP: nettoyage des applications obsolètes/squash des migrations (#40685)
- Modifications : https://git.entrouvert.org/entrouvert/authentic/pulls/219/files
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.
Mis à jour par Benjamin Dauvergne il y a 4 mois
- Sujet changé de auth_*,idp_*: squash des migrations à squash des migrations
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)
Mis à jour par Benjamin Dauvergne il y a 4 mois
- Lié à Development #84914: Supprimer les anciennes migrations ajouté
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.
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 :
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 :
- URL : https://git.entrouvert.org/entrouvert/authentic/pulls/262
- Titre : WIP: nettoyage des applications obsolètes/squash des migrations (#40685) (série partielle)
- Modifications : https://git.entrouvert.org/entrouvert/authentic/pulls/262/files
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 :