[FIX] analyse: retirer un constat qui faisait peur pour rien
« ir_model_relation nomme une table absente » : 0 avant la migration, 68 après. Le profil idéal — et aucune 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. J'écrivais « la prochaine mise à jour de module tente de la modifier et échoue » : c'est faux. Les 68 appartiennent de plus à des modules INSTALLÉS, et database_cleanup ne touche que les désinstallés — la réparation désignée 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. Restent trois constats, tous réels. --- EN --- « ir_model_relation names a missing table »: 0 before the migration, 68 after. The ideal profile — and no consequence whatsoever. Its only consumer, _module_data_uninstall in base/models/ir_model.py, tests sql.table_exists() BEFORE dropping: the stale row is skipped, then unlinked. I wrote "the next module update tries to alter it and fails": that is false. The 68 also belong to INSTALLED modules, and database_cleanup only touches uninstalled ones — the repair I named would have fixed none. A finding with no consequence and no possible action is noise, however clean the signal. Three findings remain, all real. Assisted-by: Claude Opus 5
This commit is contained in:
parent
8be55031ab
commit
2462798f4e
2 changed files with 14 additions and 19 deletions
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
Loading…
Reference in a new issue