[REF] l10n_fr_account: host custom migration scripts in a dedicated `--upgrade-path`
Custom migration scripts for a core module used to require copying the whole module into ``versions/18.0/addons/`` so its ``migrations/`` folder would be picked up. Because the migration container mounts that copy with priority (``--addons-path=mig,addons``) and ``get_module_path`` returns the first match, the copy fully shadowed the core module — dragging along its entire data/models just to carry one script. Instead, inject the scripts through a dedicated OpenUpgrade ``upgrade_path``: - New ``versions/18.0/scripts/l10n_fr_account/18.0.2.2/`` holding ``pre-migration-0k-fix-orphan-expressions.py`` (converted to the ``@openupgrade.migrate()`` / ``migrate(env, version)`` convention) and ``post-migration-0k-vat-box25.py`` + ``noupdate_changes.xml`` that reapply the box 25 VAT-report customization via ``openupgrade.load_data``. - ``config/compose.yml``: mount it as ``/opt/odoo/auto/upgrade`` for ou18. - ``versions/18.0/upgrade.sh``: pass ``--upgrade-path=/opt/odoo/auto/upgrade,/opt/odoo/auto/addons/openupgrade_scripts/scripts``. Odoo appends every path to ``odoo.upgrade.__path__`` and concatenates the per-version scripts, so our scripts run IN ADDITION to the native ones; the native path is listed explicitly because ``--upgrade-path`` overrides ``config['upgrade_path']`` which ``openupgrade_framework`` only sets when empty. Files are named with a ``-0k-`` marker so they never collide with the native ``pre-migration.py`` / ``post-migration.py``. This removes the need for the shadowing module copy entirely. Also ignore ``__pycache__``/``*.pyc``.
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
# Copyright 0k / Élabore
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||
#
|
||||
# Custom OpenUpgrade migration script, injected through a dedicated
|
||||
# --upgrade-path (see versions/18.0/upgrade.sh). It runs IN ADDITION to the
|
||||
# native openupgrade_scripts post-migration.py of l10n_fr_account/18.0.2.2.
|
||||
#
|
||||
# Loads the 0k customization of the French VAT report (box 25 "adjustment")
|
||||
# the OpenUpgrade way, without shadowing the core l10n_fr_account module.
|
||||
from openupgradelib import openupgrade
|
||||
|
||||
|
||||
@openupgrade.migrate()
|
||||
def migrate(env, version):
|
||||
# mode="init" (re)creates records marked noupdate that the normal upgrade
|
||||
# mechanism would skip; it updates existing ones (tax_report_25_formula)
|
||||
# and creates new ones (tax_report_25_adjustment).
|
||||
openupgrade.load_data(
|
||||
env, "l10n_fr_account", "18.0.2.2/noupdate_changes.xml"
|
||||
)
|
||||
Reference in New Issue
Block a user