From 63397923c409a9947aee548a0e1752dc5f60a617 Mon Sep 17 00:00:00 2001 From: Marco Pedone Date: Fri, 14 Nov 2025 18:09:11 +0100 Subject: [PATCH] refactor: update SQL migration to use conditional blocks for dropping and adding columns in servizio and users_anagrafica tables --- apps/db/migrations/23_moving_docs.up.sql | 68 ++++++++++++++++++------ 1 file changed, 52 insertions(+), 16 deletions(-) diff --git a/apps/db/migrations/23_moving_docs.up.sql b/apps/db/migrations/23_moving_docs.up.sql index 9c4f5da..5c0f726 100644 --- a/apps/db/migrations/23_moving_docs.up.sql +++ b/apps/db/migrations/23_moving_docs.up.sql @@ -1,4 +1,4 @@ ----Remove document references from servizio table +-- Remove document references from servizio table DO $$ BEGIN IF EXISTS ( SELECT 1 FROM pg_constraint @@ -19,40 +19,76 @@ DO $$ BEGIN END IF; END $$; -ALTER TABLE IF EXISTS public.servizio -DROP COLUMN IF EXISTS doc_personale_fronte_ref; +DO $$ BEGIN + IF EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_schema = 'public' + AND table_name = 'servizio' + AND column_name = 'doc_personale_fronte_ref' + ) THEN + ALTER TABLE public.servizio DROP COLUMN doc_personale_fronte_ref; + END IF; +END $$; -ALTER TABLE IF EXISTS public.servizio -DROP COLUMN IF EXISTS doc_personale_retro_ref; +DO $$ BEGIN + IF EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_schema = 'public' + AND table_name = 'servizio' + AND column_name = 'doc_personale_retro_ref' + ) THEN + ALTER TABLE public.servizio DROP COLUMN doc_personale_retro_ref; + END IF; +END $$; ----Add document references to users_anagrafica table -ALTER TABLE IF EXISTS public.users_anagrafica -ADD COLUMN doc_personale_fronte_ref UUID; +-- Add document references to users_anagrafica table +DO $$ BEGIN + IF NOT EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_schema = 'public' + AND table_name = 'users_anagrafica' + AND column_name = 'doc_personale_fronte_ref' + ) THEN + ALTER TABLE public.users_anagrafica ADD COLUMN doc_personale_fronte_ref UUID; + END IF; +END $$; -ALTER TABLE IF EXISTS public.users_anagrafica -ADD COLUMN doc_personale_retro_ref UUID; +DO $$ BEGIN + IF NOT EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_schema = 'public' + AND table_name = 'users_anagrafica' + AND column_name = 'doc_personale_retro_ref' + ) THEN + ALTER TABLE public.users_anagrafica ADD COLUMN doc_personale_retro_ref UUID; + END IF; +END $$; -DO $$ -BEGIN +-- Add foreign key constraints +DO $$ BEGIN IF NOT EXISTS ( SELECT 1 FROM pg_constraint WHERE conname = 'anagrafica_doc_fronte' AND conrelid = 'public.users_anagrafica'::regclass ) THEN ALTER TABLE public.users_anagrafica - ADD CONSTRAINT anagrafica_doc_fronte FOREIGN KEY (doc_personale_fronte_ref) + ADD CONSTRAINT anagrafica_doc_fronte + FOREIGN KEY (doc_personale_fronte_ref) REFERENCES public.users_storage (user_storage_id) - MATCH SIMPLE ON UPDATE CASCADE ON DELETE SET NULL; + ON UPDATE CASCADE ON DELETE SET NULL; END IF; +END $$; +DO $$ BEGIN IF NOT EXISTS ( SELECT 1 FROM pg_constraint WHERE conname = 'anagrafica_doc_retro' AND conrelid = 'public.users_anagrafica'::regclass ) THEN ALTER TABLE public.users_anagrafica - ADD CONSTRAINT anagrafica_doc_retro FOREIGN KEY (doc_personale_retro_ref) + ADD CONSTRAINT anagrafica_doc_retro + FOREIGN KEY (doc_personale_retro_ref) REFERENCES public.users_storage (user_storage_id) - MATCH SIMPLE ON UPDATE CASCADE ON DELETE SET NULL; + ON UPDATE CASCADE ON DELETE SET NULL; END IF; END $$; \ No newline at end of file