-
-
Notifications
You must be signed in to change notification settings - Fork 96
Open
Labels
Description
I'm trying to migrate a customer database from v14 to v18. It fails in the last step to 18.0 in the migration script for the module donation. There is no code in version 17 for donation in the OCA repository yet, but migration to v16 seems to have succeeded.
Module
donation
Describe the bug
Here is a stack trace of the problem:
2026-02-20 18:57:10,194 8471 �[1;31m�[1;49mERROR�[0m natur_v18 odoo.sql_db: bad query: b'SELECT "res_users"."id", (SELECT "account_payment_method_line__exists".id\n FROM "account_payment_method_line" AS "account_payment_method_line__exists"\n WHERE "account_payment_method_line__exists".id = ("res_users"."context_donation_payment_method_line_id"->\'1\'->>0)::int4) FROM "res_users" WHERE ("res_users"."id" IN (1))'
ERROR: column res_users.context_donation_payment_method_line_id does not exist
LINE 3: ...WHERE "account_payment_method_line__exists".id = ("res_users...
^
2026-02-20 18:57:10,203 8471 �[1;33m�[1;49mWARNING�[0m natur_v18 odoo.modules.loading: Transient module states were reset
2026-02-20 18:57:10,205 8471 �[1;31m�[1;49mERROR�[0m natur_v18 odoo.modules.registry: Failed to load registry
2026-02-20 18:57:10,205 8471 �[1;37m�[1;41mCRITICAL�[0m natur_v18 odoo.service.server: Failed to initialize database `natur_v18`.
Traceback (most recent call last):
File "/opt/odoo/lib/odoo/odoo/service/server.py", line 1404, in preload_registries
registry = Registry.new(dbname, update_module=update_module)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/odoo/venv/lib/python3.11/site-packages/decorator.py", line 232, in fun
return caller(func, *(extras + args), **kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/odoo/lib/odoo/odoo/tools/func.py", line 97, in locked
return func(inst, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/odoo/lib/odoo/odoo/modules/registry.py", line 129, in new
odoo.modules.load_modules(registry, force_demo, status, update_module)
File "/opt/odoo/lib/odoo/odoo/modules/loading.py", line 529, in load_modules
processed_modules += load_marked_modules(env, graph,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/odoo/lib/odoo/odoo/modules/loading.py", line 402, in load_marked_modules
loaded, processed = load_module_graph(
^^^^^^^^^^^^^^^^^^
File "/opt/odoo/lib/odoo/odoo/modules/loading.py", line 243, in load_module_graph
registry.init_models(env.cr, model_names, {'module': package.name}, new_install)
File "/opt/odoo/lib/odoo/odoo/modules/registry.py", line 605, in init_models
model._auto_init()
File "/opt/odoo/lib/odoo/odoo/models.py", line 3546, in _auto_init
new = field.update_db(self, columns)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/odoo/lib/odoo/odoo/fields.py", line 3270, in update_db
return super(Many2one, self).update_db(model, columns)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/odoo/lib/odoo/odoo/fields.py", line 1099, in update_db
self.update_db_notnull(model, column)
File "/opt/odoo/lib/odoo/odoo/fields.py", line 1151, in update_db_notnull
model._init_column(self.name)
File "/opt/odoo/lib/odoo/odoo/models.py", line 3462, in _init_column
value = field.default(self)
^^^^^^^^^^^^^^^^^^^
File "/opt/odoo/lib/addons/oca-mirror-donation/donation/models/donation.py", line 103, in <lambda>
default=lambda self: self.env.user.context_donation_payment_method_line_id,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/odoo/lib/odoo/odoo/fields.py", line 3114, in __get__
return super().__get__(records, owner)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/odoo/lib/odoo/odoo/fields.py", line 1275, in __get__
recs._fetch_field(self)
File "/opt/odoo/lib/odoo/odoo/models.py", line 4196, in _fetch_field
self.fetch(fnames)
File "/opt/odoo/lib/odoo/odoo/models.py", line 4234, in fetch
fetched = self._fetch_query(query, fields_to_fetch)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/odoo/lib/odoo/odoo/addons/base/models/res_users.py", line 573, in _fetch_query
records = super()._fetch_query(query, fields)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/odoo/lib/odoo/odoo/models.py", line 4323, in _fetch_query
rows = self.env.execute_query(query.select(*sql_terms))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/odoo/lib/odoo/odoo/api.py", line 993, in execute_query
self.cr.execute(query)
File "/opt/odoo/lib/odoo/odoo/sql_db.py", line 364, in execute
res = self._obj.execute(query, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
psycopg2.errors.UndefinedColumn: column res_users.context_donation_payment_method_line_id does not exist
LINE 3: ...WHERE "account_payment_method_line__exists".id = ("res_users...
^
2026-02-20 18:57:10,214 8471 �[1;32m�[1;49mINFO�[0m natur_v18 odoo.service.server: Stopping gracefully The failing OpenUpgrade script seems to be openupgrade_scripts/scripts/iap/18.0.1.1/pre-migration.py.
To Reproduce
Affected versions: 18.0
Steps to reproduce the behavior:
- Checkout latest OpenUpgrade code branch 18.0 and include in Odoo container
- Run OpenUpgrade on a database containing donation data from version 16.
Expected behavior
successful migration/adaption of the database schemas
Additional context
Debian Linux 12.1, Python Python 3.11.2
Reactions are currently unavailable