Skip to content

Commit 8d4bd88

Browse files
committed
[FIX] membership: Assign on pre + save old column
Due to the FK, we can't do the reassignation on post-migration, and we should keep all column and recreate a new one for avoiding extra FK constraints and for keeping data for any later audit.
1 parent cd9ad56 commit 8d4bd88

File tree

2 files changed

+34
-19
lines changed

2 files changed

+34
-19
lines changed

addons/membership/migrations/13.0.1.0/post-migration.py

Lines changed: 0 additions & 19 deletions
This file was deleted.
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Copyright 2020 ForgeFlow <http://www.forgeflow.com>
2+
# Copyright 2020 Tecnativa - Pedro M. Baeza
3+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
4+
from psycopg2 import sql
5+
from openupgradelib import openupgrade
6+
7+
8+
def update_invoice_line_relation(env):
9+
column = "account_invoice_line"
10+
openupgrade.rename_columns(
11+
env.cr, {"membership_membership_line": [(column, None)]}
12+
)
13+
openupgrade.logged_query(
14+
env.cr,
15+
sql.SQL("ALTER TABLE membership_membership_line ADD {} INT4").format(
16+
sql.Identifier(column)
17+
)
18+
)
19+
openupgrade.logged_query(
20+
env.cr, sql.SQL(
21+
"""UPDATE membership_membership_line mml
22+
SET account_invoice_line = aml.id
23+
FROM account_invoice_line ail
24+
JOIN account_move_line aml ON aml.old_invoice_line_id = ail.id
25+
WHERE mml.{} = ail.id"""
26+
).format(
27+
sql.Identifier(openupgrade.get_legacy_name(column))
28+
),
29+
)
30+
31+
32+
@openupgrade.migrate()
33+
def migrate(env, version):
34+
update_invoice_line_relation(env)

0 commit comments

Comments
 (0)