From 224f3d67bdfdd717ea46bcdb648b137f5d28e437 Mon Sep 17 00:00:00 2001 From: Chris Date: Fri, 3 Apr 2026 01:10:13 +0800 Subject: [PATCH] fix: add provider column migration script for existing db --- scripts/migrate_provider_columns.sql | 67 ++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 scripts/migrate_provider_columns.sql diff --git a/scripts/migrate_provider_columns.sql b/scripts/migrate_provider_columns.sql new file mode 100644 index 0000000..1e3b4b6 --- /dev/null +++ b/scripts/migrate_provider_columns.sql @@ -0,0 +1,67 @@ +-- Rename legacy IdP column names to provider_* naming. +-- Safe to run multiple times. + +DO $$ +BEGIN + IF EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_schema = 'public' AND table_name = 'companies' AND column_name = 'idp_group_id' + ) AND NOT EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_schema = 'public' AND table_name = 'companies' AND column_name = 'provider_group_id' + ) THEN + ALTER TABLE public.companies RENAME COLUMN idp_group_id TO provider_group_id; + END IF; +END $$; + +DO $$ +BEGIN + IF EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_schema = 'public' AND table_name = 'sites' AND column_name = 'idp_group_id' + ) AND NOT EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_schema = 'public' AND table_name = 'sites' AND column_name = 'provider_group_id' + ) THEN + ALTER TABLE public.sites RENAME COLUMN idp_group_id TO provider_group_id; + END IF; +END $$; + +DO $$ +BEGIN + IF EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_schema = 'public' AND table_name = 'systems' AND column_name = 'idp_client_id' + ) AND NOT EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_schema = 'public' AND table_name = 'systems' AND column_name = 'provider_client_id' + ) THEN + ALTER TABLE public.systems RENAME COLUMN idp_client_id TO provider_client_id; + END IF; +END $$; + +DO $$ +BEGIN + IF EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_schema = 'public' AND table_name = 'roles' AND column_name = 'idp_role_name' + ) AND NOT EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_schema = 'public' AND table_name = 'roles' AND column_name = 'provider_role_name' + ) THEN + ALTER TABLE public.roles RENAME COLUMN idp_role_name TO provider_role_name; + END IF; +END $$; + +DO $$ +BEGIN + IF EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_schema = 'public' AND table_name = 'users' AND column_name = 'idp_user_id' + ) AND NOT EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_schema = 'public' AND table_name = 'users' AND column_name = 'provider_user_id' + ) THEN + ALTER TABLE public.users RENAME COLUMN idp_user_id TO provider_user_id; + END IF; +END $$;