Développement #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).
Related issues
History
Updated by Benjamin Dauvergne about 5 years ago
- Subject changed from custom_user: squash des migrations to auth_*,idp_*: squash des migrations
- Description updated (diff)
Updated by Frédéric Péters over 1 year 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).
Updated by Robot Gitea over 1 year ago
- Status changed from Nouveau to 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
Updated by Benjamin Dauvergne over 1 year 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.
Updated by Benjamin Dauvergne over 1 year ago
- Subject changed from auth_*,idp_*: squash des migrations to squash des migrations
Updated by Benjamin Dauvergne over 1 year 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)
Updated by Benjamin Dauvergne over 1 year ago
- Related to Développement #84914: Supprimer les anciennes migrations added
Updated by Benjamin Dauvergne about 1 year 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.
Updated by Robot Gitea about 1 year 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 :
Updated by Robot Gitea about 1 year ago
- Status changed from Solution proposée to 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
Updated by Robot Gitea about 1 year ago
Benjamin Dauvergne (bdauvergne) a demandé une relecture de Paul Marillonnet (pmarillonnet) sur une pull request sur Gitea concernant cette demande :