diff --git a/backend/src/migrations.ts b/backend/src/migrations.ts index 0bb27c4..8405fa2 100644 --- a/backend/src/migrations.ts +++ b/backend/src/migrations.ts @@ -249,6 +249,46 @@ export async function migrate() { ); `); + await query(` + UPDATE tickets t + SET organization_id = old_org.zammad_id + FROM organizations old_org + WHERE t.organization_id = old_org.id + AND t.organization_id <> old_org.zammad_id + AND COALESCE(t.customer_name, '') = old_org.name; + `); + + await query(` + UPDATE sessions s + SET organization_id = old_org.zammad_id + FROM organizations old_org + WHERE s.organization_id = old_org.id + AND s.organization_id <> old_org.zammad_id + AND COALESCE(s.customer_name, '') = old_org.name; + `); + + await query(` + UPDATE recurring_billings rb + SET organization_id = old_org.zammad_id + FROM organizations old_org + WHERE rb.organization_id = old_org.id + AND rb.organization_id <> old_org.zammad_id + AND ( + EXISTS ( + SELECT 1 + FROM sessions s + WHERE s.recurring_billing_id = rb.id + AND COALESCE(s.customer_name, '') = old_org.name + ) + OR EXISTS ( + SELECT 1 + FROM tickets t + WHERE t.ticket_number = COALESCE(rb.ticket_number, 'Fix#' || rb.id) + AND COALESCE(t.customer_name, '') = old_org.name + ) + ); + `); + await query(` UPDATE tickets SET organization_id = NULL