In the context of odoo migration of my custom modules from v13 to v16.
In my src/user/custom_module, I want to adapt the content of the manifest file to the new v16-requirements. Originnaly, i have a manifest file in v13 (__manifest__.py
) which contains assets.xml
in the data entry ('data': [ ...])
And i have created a new manifest file which fits the requirements for v16 (v16__manifest__.py
): it contains assets directly as entry ('assets': [ ...]) and does not use assets.xml amymore.
Using the standard migration scripts architecture (migrations/13.0.2/pre-migrate.py), i manage to change the name of the 2 manifests files, so that:
__manifest__.py
get renamed tov13__manifest__.py
v16__manifest__.py
get renamed to__manifest__.py
# content of migrations/13.0.2/pre-migrate.py
def swap_mf_version():
# code ok: rename manifest files accordingly using pathlib
# This function invoked only if system already have 13.0.0 version installed
def migrate(cr, version):
swap_mf_version()
The code get executed and does the job : the 2 files get renamed but it triggers a reload of the module ("python code updated, autoreload activated "). Here the Traceback:
2023-08-31 09:20:57,962 3108 INFO dbmaster230506 odoo.modules.migration: module crm_zsb: Running migration [13.0.2.0.22>] pre-migrate
2023-08-31 09:20:57,963 3108 INFO dbmaster230506 pre-migrate: !!! inside pre-migrate.py > def migrate !!!
2023-08-31 09:20:57,963 3108 INFO dbmaster230506 pre-migrate: !!! inside pre-migrate.py > def swap_mf_version !!!
2023-08-31 09:20:57,979 3108 INFO dbmaster230506 odoo.addons.base.models.ir_translation: module crm_zsb: no translation for language fr
2023-08-31 09:20:59,024 3108 INFO ? odoo.service.server: autoreload: python code updated, autoreload activated
Traceback (most recent call last):
File "/Applications/Odoo13-virtualenv/src/odoo/odoo-bin", line 8, in <module>
odoo.cli.main()
File "/Applications/Odoo13-virtualenv/src/odoo/odoo/cli/command.py", line 60, in main
o.run(args)
File "/Applications/Odoo13-virtualenv/src/odoo/odoo/cli/server.py", line 178, in run
main(args)
File "/Applications/Odoo13-virtualenv/src/odoo/odoo/cli/server.py", line 172, in main
rc = odoo.service.server.start(preload=preload, stop=stop)
File "/Applications/Odoo13-virtualenv/src/odoo/odoo/service/server.py", line 1291, in start
rc = server.run(preload, stop)
File "/Applications/Odoo13-virtualenv/src/odoo/odoo/service/server.py", line 513, in run
rc = preload_registries(preload)
File "/Applications/Odoo13-virtualenv/src/odoo/odoo/service/server.py", line 1194, in preload_registries
2023-08-31 09:20:59,027 3108 INFO dbmaster230506 odoo.addons.base.models.ir_http: Generating routing map for key 4
registry = Registry.new(dbname, update_module=update_module)
File "/Applications/Odoo13-virtualenv/src/odoo/odoo/modules/registry.py", line 87, in new
odoo.modules.load_modules(registry._db, force_demo, status, update_module)
File "/Applications/Odoo13-virtualenv/src/odoo/odoo/modules/loading.py", line 422, in load_modules
processed_modules += load_marked_modules(cr, graph,
File "/Applications/Odoo13-virtualenv/src/odoo/odoo/modules/loading.py", line 313, in load_marked_modules
loaded, processed = load_module_graph(
File "/Applications/Odoo13-virtualenv/src/odoo/odoo/modules/loading.py", line 182, in load_module_graph
load_openerp_module(package.name)
File "/Applications/Odoo13-virtualenv/src/odoo/odoo/modules/module.py", line 404, in load_openerp_module
__import__('odoo.addons.' + module_name)
File "/Applications/Odoo13-virtualenv/src/odoo/addons/website_sale/__init__.py", line 5, in <module>
from . import models
File "/Applications/Odoo13-virtualenv/src/odoo/addons/website_sale/models/__init__.py", line 7, in <module>
from . import mail_compose_message
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 971, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 914, in _find_spec
File "<frozen importlib._bootstrap_external>", line 1342, in find_spec
File "<frozen importlib._bootstrap_external>", line 1314, in _get_spec
File "<frozen importlib._bootstrap_external>", line 1469, in find_spec
2023-08-31 09:20:59,222 3108 WARNING dbmaster230506 odoo.http: ('Currently, this database is not fully loaded and can not be used.', '')
File "<frozen importlib._bootstrap_external>", line 101, in _path_isfile
File "<frozen importlib._bootstrap_external>", line 93, in _path_is_mode_type
File "<frozen importlib._bootstrap_external>", line 87, in _path_stat
File "/Applications/Odoo13-virtualenv/src/odoo/odoo/service/server.py", line 367, in signal_handler
raise KeyboardInterrupt()
KeyboardInterrupt
I have already tried to handle this using a pre_init_hook
but it won t be triggered...
How could I do this renaming, as migration step, before launching the module ?