An early check warns, hours before the bump, that a copy will break it. It then says « arbitrate BEFORE launching the migration » and hands over a raw UPDATE — and no question follows. Read on a resumed run it looks like the question already went by and was skipped, which is exactly how it was read. It now says the migration asks at the bump itself, and shows what each copy holds before the answer. The manual UPDATE stays, but after the two commands that do it reversibly: telling someone to hand-write SQL when --restore exists is offering the sharper tool first. --- FR --- Un contrôle précoce prévient, des heures avant le palier, qu'une copie va le casser. Il dit ensuite « arbitrez AVANT de lancer la migration » et livre un UPDATE brut — et aucune question ne suit. Lu au cours d'une reprise, on croit que la question est passée et a été sautée, ce qui est exactement la lecture qui en a été faite. Il dit maintenant que la migration pose la question au palier lui-même, en montrant ce que chaque copie contient avant qu'on réponde. L'UPDATE manuel reste, mais après les deux commandes qui le font de façon réversible : dire à quelqu'un d'écrire du SQL à la main quand --restore existe, c'est tendre l'outil le plus coupant en premier. Assisted-by: Claude Opus 5 |
||
|---|---|---|
| .. | ||
| check_cow_views.py | ||
| cow_drift.py | ||
| cow_drift_tui.py | ||
| fix_migration_odoo130_to_odoo140.sql | ||
| fix_migration_odoo140_to_odoo150.py | ||
| neutralize_cow_views.py | ||
| README.base.md | ||
| README.fr.md | ||
| README.md | ||
| reset_stale_cow_views.py | ||
| snapshot_cow_views.py | ||
| uninstall_module_list_odoo140_to_odoo150.txt | ||
Migration
Run this script when doing database migration. Example :
source ./.venv.odoo15.0_python3.8.20/bin/activate && cat ./script/odoo/migration/fix_migration_odoo140_to_odoo150.py | ./odoo15.0/odoo/odoo-bin shell -d DATABASE
Check uninstall_module_list_odoo140_to_odoo150.txt
Module lists to uninstall
Before a version bump, the migration uninstalls the modules listed in
uninstall_module_list_odoo<from>_to_odoo<to>.txt. Two locations are read, the
private one first, and the results are merged (duplicates dropped):
private/odoo/migration/<database>/uninstall_module_list_odooXX0_to_odooYY0.txt— specific to ONE database, not versioned. Which modules must be dropped depends on the data, so this is where nearly every entry belongs.script/odoo/migration/uninstall_module_list_odooXX0_to_odooYY0.txt— shared defaults, versioned, valid for every database.
Syntax: one module per line, with a justification after #. Commas and several
names per line are accepted; blank lines and full-line comments are ignored.
A module without a stated reason is flagged at runtime: removing a module is a
decision someone must be able to review later.
queue_job # blocks 12->13, trigger queue_job_notify
mgmtsystem_hazard # not ported to 13.0
web_syncer # dropped upstream