odoo/upgrade-util#347

Created by Sanchit Gupta (sagu)

Blocked

label
odoo-dev:master-prevent_manual_relation_table-sagu
head
829a40422fd1d5edeff2cf8a89014eb845a32391
odoo/upgrade-util
master #347 missing r+

[FIX] util/models: Prevent removal manual relation table

There are two model A and B and there is
x many2many field in A model which is manual and relation with B. Now, B model is removed. So, For that relation table is droped but the field will there and in relation model _unknown will be set
https://github.com/odoo/upgrade-util/blob/25cb37389b527f442acfbb704e07769d69b11b9f/src/util/models.py#L242.

As the field belongs to A. So, table will be recreated from here as it checks only table is there or not and after that from here env variable it have in gone and below menitoned traceback will raise. To Fix, Preventing table for manual fields. So, field can be checked later on and to prevent blocking.

Traceback (most recent call last):
  File "/home/odoo/src/odoo/19.0/odoo/service/server.py", line 1509, in preload_registries
    registry = Registry.new(dbname, update_module=update_module, install_modules=config['init'], upgrade_modules=config['update'], reinit_modules=config['reinit'])
  File "/home/odoo/src/odoo/19.0/odoo/tools/func.py", line 88, in locked
    return func(inst, *args, **kwargs)
  File "/home/odoo/src/odoo/19.0/odoo/orm/registry.py", line 185, in new
    load_modules(
  File "/home/odoo/src/odoo/19.0/odoo/modules/loading.py", line 580, in load_modules
    model._register_hook()
  File "/tmp/tmpkw62chtg/migrations/base/0.0.0/pre-models-ir_model_relation.py", line 49, in _register_hook
    raise util.MigrationError("The following m2m relations have respawn:\n%s" % back_m2m)
odoo.upgrade.util.exceptions.UpgradeError: The following m2m relations have respawn:
 - x_res_partner_uom_category_rel via uom.category

upg-3191893
opw-5175564