diff --git a/script/analyse/check_migration_residue.py b/script/analyse/check_migration_residue.py index eaef2d6..b171851 100755 --- a/script/analyse/check_migration_residue.py +++ b/script/analyse/check_migration_residue.py @@ -35,9 +35,22 @@ parce qu'ils sont faux en eux-mêmes. Les mêmes bases, mêmes mesures : liste de prix par défaut absente 0 → 1 `product` installé, son xmlid pas là -Zéro avant, non nul après : aucun de ces quatre ne peut s'expliquer +Zéro avant, non nul après : aucun de ces trois ne peut s'expliquer autrement que par la migration. +Un quatrième a été RETIRÉ après vérification +-------------------------------------------- +« ir_model_relation nomme une table absente » : 0 avant, 68 après, le +profil idéal. Et sans la moindre conséquence. Son unique consommateur, +`_module_data_uninstall` dans `base/models/ir_model.py`, teste +`sql.table_exists(...)` AVANT de supprimer : la ligne périmée est +ignorée, puis effacée. Les 68 appartiennent en outre à des modules +INSTALLÉS, que `database_cleanup` ne touche pas — la réparation que ce +fichier désignait n'en aurait réparé aucune. + +Un constat sans conséquence et sans geste possible est du bruit, quelle +que soit la netteté du signal. Il est parti. + Chaque constat nomme l'outil qui le répare. Un rapport qui montre un dégât sans dire quoi lancer oblige à chercher, et on ne cherche pas. @@ -101,16 +114,6 @@ CONTROLES = ( "gravity": "broken", "repair": None, }, - { - "key": "orphan_relation", - "title": "Many-to-many tables named but missing", - "why": "ir_model_relation still names a table PostgreSQL does not" - " have; the next module update tries to alter it and fails.", - "sql": "SELECT count(*) FROM ir_model_relation r WHERE NOT EXISTS" - " (SELECT 1 FROM pg_class c WHERE c.relname = r.name)", - "gravity": "broken", - "repair": "script/analyse/database_cleanup.py", - }, { "key": "duplicate_index", "title": "Indexes duplicated by the Odoo 17 renaming", diff --git a/script/todo/todo_i18n.py b/script/todo/todo_i18n.py index 40f038e..d47cfc9 100644 --- a/script/todo/todo_i18n.py +++ b/script/todo/todo_i18n.py @@ -9564,14 +9564,6 @@ TRANSLATIONS = { "fr": "Un booléen qui n'est ni vrai ni faux : la langue n'est listée nulle part et ne peut plus être réactivée depuis l'interface.", "en": "A boolean that is neither true nor false: the language is listed nowhere and cannot be re-enabled from the interface.", }, - "Many-to-many tables named but missing": { - "fr": "Tables plusieurs-à-plusieurs nommées mais absentes", - "en": "Many-to-many tables named but missing", - }, - "ir_model_relation still names a table PostgreSQL does not have; the next module update tries to alter it and fails.": { - "fr": "ir_model_relation nomme encore une table que PostgreSQL n'a pas ; la prochaine mise à jour de module tente de la modifier et échoue.", - "en": "ir_model_relation still names a table PostgreSQL does not have; the next module update tries to alter it and fails.", - }, "Indexes duplicated by the Odoo 17 renaming": { "fr": "Index doublés par le renommage d'Odoo 17", "en": "Indexes duplicated by the Odoo 17 renaming",