[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
|
liste de prix par défaut absente 0 → 1 `product` installé, son
|
||||||
xmlid pas là
|
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.
|
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
|
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.
|
dégât sans dire quoi lancer oblige à chercher, et on ne cherche pas.
|
||||||
|
|
||||||
|
|
@ -101,16 +114,6 @@ CONTROLES = (
|
||||||
"gravity": "broken",
|
"gravity": "broken",
|
||||||
"repair": None,
|
"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",
|
"key": "duplicate_index",
|
||||||
"title": "Indexes duplicated by the Odoo 17 renaming",
|
"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.",
|
"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.",
|
"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": {
|
"Indexes duplicated by the Odoo 17 renaming": {
|
||||||
"fr": "Index doublés par le renommage d'Odoo 17",
|
"fr": "Index doublés par le renommage d'Odoo 17",
|
||||||
"en": "Indexes duplicated by the Odoo 17 renaming",
|
"en": "Indexes duplicated by the Odoo 17 renaming",
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue