Skip to content

Conversation

@sagu-odoo
Copy link
Contributor

@sagu-odoo sagu-odoo commented Oct 10, 2025

before 16.5 there was constraint on field action_server_id of base.automation model ON delete restrict which causing issue during upgrade when removing model if contextual action created for the same server action binding_model_id as below mentioned traceback because due to on delete cascade model will remove.So, server action will also delete. But server action is linked to automated action. So, request will block.

For fixing this issue removing the automated action first and then let the model remove.

Traceback (most recent call last):
  File "/home/odoo/src/odoo/16.0/odoo/service/server.py", line 1333, in preload_registries
    registry = Registry.new(dbname, update_module=update_module)
  File "<decorator-gen-16>", line 2, in new
  File "/home/odoo/src/odoo/16.0/odoo/tools/func.py", line 87, in locked
    return func(inst, *args, **kwargs)
  File "/home/odoo/src/odoo/16.0/odoo/modules/registry.py", line 87, in new
    odoo.modules.load_modules(registry, force_demo, status, update_module)
  File "/home/odoo/src/odoo/16.0/odoo/modules/loading.py", line 528, in load_modules
    migrations.migrate_module(package, 'end')
  File "/home/odoo/src/odoo/16.0/odoo/modules/migration.py", line 170, in migrate_module
    exec_script(self.cr, installed_version, pyfile, pkg.name, stage, stageformat[stage] % version)
  File "/home/odoo/src/odoo/16.0/odoo/modules/migration.py", line 188, in exec_script
    migrate(cr, installed_version)
  File "/tmp/tmpegkppsuy/migrations/sale_subscription/saas~15.3.1.1/end-migrate.py", line 20, in migrate
    util.remove_model(cr, "sale.subscription.line", drop_table=False)
  File "/tmp/tmpegkppsuy/migrations/util/models.py", line 222, in remove_model
    cr.execute("DELETE FROM ir_model WHERE id=%s", (mod_id,))
  File "/home/odoo/src/odoo/16.0/odoo/sql_db.py", line 324, in execute
    res = self._obj.execute(query, params)
psycopg2.errors.ForeignKeyViolation: update or delete on table "ir_act_server" violates foreign key constraint "base_automation_action_server_id_fkey" on table "base_automation"
DETAIL:  Key (id)=(3632) is still referenced from table "base_automation".

upg-3179507
opw-5148694

@robodoo
Copy link
Contributor

robodoo commented Oct 10, 2025

Pull request status dashboard

@sagu-odoo sagu-odoo force-pushed the master-fix_constraint_automation-sagu branch from dbd0427 to 2783203 Compare October 10, 2025 10:15
@sagu-odoo sagu-odoo force-pushed the master-fix_constraint_automation-sagu branch 6 times, most recently from 52d4388 to 33c9778 Compare October 10, 2025 11:34
@KangOl
Copy link
Contributor

KangOl commented Oct 10, 2025

upgradeci retry with always only base_automation base

@sagu-odoo sagu-odoo force-pushed the master-fix_constraint_automation-sagu branch from 33c9778 to 7dd1e44 Compare October 13, 2025 08:35
before 16.5
https://github.com/odoo/odoo/pull/114352/files#diff-f456849127002cd01a9e2058290e40ae8e5c1d57e15785699f0172400766bcd4R69
there was constraint on field ``action_server_id``
of ``base.automation`` model ON delete restrict
https://github.com/odoo/odoo/blob/d07ffce41df433e51d1239be855cd52867b905e0/addons/base_automation/models/base_automation.py#L34C5-L34C21
which causing issue during upgrade when removing model if contextual
action created for the same server action ``binding_model_id``
https://github.com/odoo/odoo/blob/3a28e5b0adbb36bdb1155a6854cdfbe4e7f9b187/odoo/addons/base/models/ir_actions.py#L35
as below mentioned traceback because due to on delete cascade model
will remove.So, server action will also delete. But server action
is linked to automated action. So, request will block.

For fixing this issue removing the automated action first and
then let the model remove.

```
Traceback (most recent call last):
  File "/home/odoo/src/odoo/16.0/odoo/service/server.py", line 1333, in preload_registries
    registry = Registry.new(dbname, update_module=update_module)
  File "<decorator-gen-16>", line 2, in new
  File "/home/odoo/src/odoo/16.0/odoo/tools/func.py", line 87, in locked
    return func(inst, *args, **kwargs)
  File "/home/odoo/src/odoo/16.0/odoo/modules/registry.py", line 87, in new
    odoo.modules.load_modules(registry, force_demo, status, update_module)
  File "/home/odoo/src/odoo/16.0/odoo/modules/loading.py", line 528, in load_modules
    migrations.migrate_module(package, 'end')
  File "/home/odoo/src/odoo/16.0/odoo/modules/migration.py", line 170, in migrate_module
    exec_script(self.cr, installed_version, pyfile, pkg.name, stage, stageformat[stage] % version)
  File "/home/odoo/src/odoo/16.0/odoo/modules/migration.py", line 188, in exec_script
    migrate(cr, installed_version)
  File "/tmp/tmpegkppsuy/migrations/sale_subscription/saas~15.3.1.1/end-migrate.py", line 20, in migrate
    util.remove_model(cr, "sale.subscription.line", drop_table=False)
  File "/tmp/tmpegkppsuy/migrations/util/models.py", line 222, in remove_model
    cr.execute("DELETE FROM ir_model WHERE id=%s", (mod_id,))
  File "/home/odoo/src/odoo/16.0/odoo/sql_db.py", line 324, in execute
    res = self._obj.execute(query, params)
psycopg2.errors.ForeignKeyViolation: update or delete on table "ir_act_server" violates foreign key constraint "base_automation_action_server_id_fkey" on table "base_automation"
DETAIL:  Key (id)=(3632) is still referenced from table "base_automation".
```

upg-3179507
opw-5148694
@sagu-odoo sagu-odoo force-pushed the master-fix_constraint_automation-sagu branch from 7dd1e44 to c805d65 Compare October 13, 2025 08:41
Copy link
Contributor

@KangOl KangOl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

robodoo pushed a commit that referenced this pull request Oct 13, 2025
before 16.5
https://github.com/odoo/odoo/pull/114352/files#diff-f456849127002cd01a9e2058290e40ae8e5c1d57e15785699f0172400766bcd4R69
there was constraint on field ``action_server_id``
of ``base.automation`` model ON delete restrict
https://github.com/odoo/odoo/blob/d07ffce41df433e51d1239be855cd52867b905e0/addons/base_automation/models/base_automation.py#L34C5-L34C21
which causing issue during upgrade when removing model if contextual
action created for the same server action ``binding_model_id``
https://github.com/odoo/odoo/blob/3a28e5b0adbb36bdb1155a6854cdfbe4e7f9b187/odoo/addons/base/models/ir_actions.py#L35
as below mentioned traceback because due to on delete cascade model
will remove.So, server action will also delete. But server action
is linked to automated action. So, request will block.

For fixing this issue removing the automated action first and
then let the model remove.

```
Traceback (most recent call last):
  File "/home/odoo/src/odoo/16.0/odoo/service/server.py", line 1333, in preload_registries
    registry = Registry.new(dbname, update_module=update_module)
  File "<decorator-gen-16>", line 2, in new
  File "/home/odoo/src/odoo/16.0/odoo/tools/func.py", line 87, in locked
    return func(inst, *args, **kwargs)
  File "/home/odoo/src/odoo/16.0/odoo/modules/registry.py", line 87, in new
    odoo.modules.load_modules(registry, force_demo, status, update_module)
  File "/home/odoo/src/odoo/16.0/odoo/modules/loading.py", line 528, in load_modules
    migrations.migrate_module(package, 'end')
  File "/home/odoo/src/odoo/16.0/odoo/modules/migration.py", line 170, in migrate_module
    exec_script(self.cr, installed_version, pyfile, pkg.name, stage, stageformat[stage] % version)
  File "/home/odoo/src/odoo/16.0/odoo/modules/migration.py", line 188, in exec_script
    migrate(cr, installed_version)
  File "/tmp/tmpegkppsuy/migrations/sale_subscription/saas~15.3.1.1/end-migrate.py", line 20, in migrate
    util.remove_model(cr, "sale.subscription.line", drop_table=False)
  File "/tmp/tmpegkppsuy/migrations/util/models.py", line 222, in remove_model
    cr.execute("DELETE FROM ir_model WHERE id=%s", (mod_id,))
  File "/home/odoo/src/odoo/16.0/odoo/sql_db.py", line 324, in execute
    res = self._obj.execute(query, params)
psycopg2.errors.ForeignKeyViolation: update or delete on table "ir_act_server" violates foreign key constraint "base_automation_action_server_id_fkey" on table "base_automation"
DETAIL:  Key (id)=(3632) is still referenced from table "base_automation".
```

upg-3179507
opw-5148694

closes #338

Signed-off-by: Christophe Simonis (chs) <chs@odoo.com>
@robodoo robodoo closed this in 3e22c9a Oct 13, 2025
@robodoo robodoo added the 19.1 label Oct 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants