Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docsource/modules180-190.rst
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ Module coverage 18.0 -> 19.0
+---------------------------------------------------+----------------------+-------------------------------------------------+
| http_routing |Nothing to do | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
| iap |Nothing to do |No DB layout changes. |
| iap |Done |Backfill service_id from legacy service_name. |
+---------------------------------------------------+----------------------+-------------------------------------------------+
| iap_crm | |No DB layout changes. |
+---------------------------------------------------+----------------------+-------------------------------------------------+
Expand Down
33 changes: 33 additions & 0 deletions openupgrade_scripts/scripts/iap/19.0.1.1/post-migration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Copyright 2026 Ledo
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from openupgradelib import openupgrade


@openupgrade.migrate()
def migrate(env, version):
# the legacy prefix (openupgrade_legacy_<N>_0_*) depends on the DB's history
env.cr.execute(
"""
SELECT column_name
FROM information_schema.columns
WHERE table_name = 'iap_account'
AND column_name LIKE 'openupgrade_legacy_%_service_name'
ORDER BY column_name
LIMIT 1
"""
)
row = env.cr.fetchone()
if not row:
return
legacy_col = row[0]
openupgrade.logged_query(
env.cr,
f"""
UPDATE iap_account a
SET service_id = s.id
FROM iap_service s
WHERE a.service_id IS NULL
AND a.{legacy_col} = s.technical_name
""",
)
20 changes: 20 additions & 0 deletions openupgrade_scripts/scripts/iap/tests/data_iap_migration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
env = locals().get("env")

# Recreate the upgrade-scarred shape (preserved legacy column + unlinked row)
# so the post-migration backfill has rows to move on the fresh CI seed.
env.cr.execute(
"ALTER TABLE iap_account "
"ADD COLUMN IF NOT EXISTS openupgrade_legacy_18_0_service_name varchar"
)
env.cr.execute("ALTER TABLE iap_account ALTER COLUMN service_id DROP NOT NULL")
env.cr.execute(
"""
INSERT INTO iap_account (openupgrade_legacy_18_0_service_name)
SELECT s.technical_name FROM iap_service s
WHERE NOT EXISTS (
SELECT 1 FROM iap_account
WHERE openupgrade_legacy_18_0_service_name IS NOT NULL)
LIMIT 1
"""
)
env.cr.commit()
Loading