[FIX] base_comment_template: Incorrect m2m column names + script + avoid FK constraint

- The name of the columns were swapped, so better to fix it for avoiding
  mistakes due to this.
- Migration script for detecting the condition and swap column names.
- On v12 > v13 migration, include JOINs for avoiding FK constraint,
  which `ON CONFLICT` clause doesn't protect.
This commit is contained in:
Pedro M. Baeza
2021-05-15 16:58:39 +02:00
parent 75ffd70cda
commit 5d73e93c19
5 changed files with 29 additions and 5 deletions

View File

@@ -16,6 +16,9 @@ def migrate(env, version):
SPLIT_PART(ip.value_reference, ',', 2)::int AS base_comment_template_id
FROM ir_property ip
JOIN ir_model_fields imf ON ip.fields_id = imf.id
JOIN res_partner rp ON rp.id = SPLIT_PART(ip.res_id, ',', 2)::int
JOIN base_comment_template bct
ON bct.id = SPLIT_PART(ip.value_reference, ',', 2)::int
WHERE imf.name = 'property_comment_template_id'
AND imf.model = 'res.partner'
AND ip.res_id IS NOT NULL

View File

@@ -0,0 +1,21 @@
# Copyright 2021 Tecnativa - Pedro M: Baeza
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openupgradelib import openupgrade # pylint: disable=W7936
@openupgrade.migrate()
def migrate(env, version):
if openupgrade.table_exists(env.cr, "base_comment_template_res_partner_rel"):
# Swap column names, as they were incorrect
env.cr.execute(
"ALTER TABLE base_comment_template_res_partner_rel "
"RENAME base_comment_template_id TO temp"
)
env.cr.execute(
"ALTER TABLE base_comment_template_res_partner_rel "
"RENAME res_partner_id TO base_comment_template_id"
)
env.cr.execute(
"ALTER TABLE base_comment_template_res_partner_rel "
"RENAME temp TO res_partner_id"
)