From 8d538313a43632409b08c62957332b6956a0d4fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89mile=20R=C3=A9?= Date: Mon, 19 Jan 2026 20:32:54 +0400 Subject: [PATCH] Fix failing migration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Émile Ré --- pkg/coredata/migrations/20260119T182800.sql | 69 ++++++++++++++++++--- 1 file changed, 61 insertions(+), 8 deletions(-) diff --git a/pkg/coredata/migrations/20260119T182800.sql b/pkg/coredata/migrations/20260119T182800.sql index bcbfb595a..b2744a16d 100644 --- a/pkg/coredata/migrations/20260119T182800.sql +++ b/pkg/coredata/migrations/20260119T182800.sql @@ -1,9 +1,62 @@ -UPDATE - iam_memberships m -SET - id = generate_gid(decode_base64_unpadded(o.tenant_id), 39) -FROM - organizations o +WITH old_to_new AS ( + SELECT + tenant_id, + id AS old_id, + generate_gid(decode_base64_unpadded(tenant_id), 39) as new_id, + identity_id, + organization_id, + role, + created_at, + updated_at, + source, + state + FROM + iam_memberships m + WHERE + extract_entity_type(parse_gid(m.id)) = 38 +), +inserted_memberships AS ( + INSERT INTO + iam_memberships ( + tenant_id, + id, + identity_id, + organization_id, + role, + created_at, + updated_at, + source, + state + ) + SELECT + m.tenant_id, + m.new_id as id, + m.identity_id, + m.organization_id, + m.role, + m.created_at, + m.updated_at, + m.source, + m.state + FROM + old_to_new m RETURNING id +), +updated_profiles AS ( + UPDATE + iam_membership_profiles mp + SET + membership_id = m.new_id + FROM + old_to_new m + WHERE + mp.membership_id = m.old_id RETURNING id +) +DELETE FROM + iam_memberships WHERE - o.id = m.organization_id - AND extract_entity_type(parse_gid(m.id)) = 38; + id IN ( + SELECT + old_id + FROM + old_to_new + ) RETURNING id;