0

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 to v13__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 ?

sylvain
  • 853
  • 1
  • 7
  • 20

0 Answers0