refactor: update SQL migration to use conditional blocks for dropping and adding columns in servizio and users_anagrafica tables
This commit is contained in:
parent
aea90d93ba
commit
63397923c4
1 changed files with 52 additions and 16 deletions
|
|
@ -1,4 +1,4 @@
|
||||||
---Remove document references from servizio table
|
-- Remove document references from servizio table
|
||||||
DO $$ BEGIN
|
DO $$ BEGIN
|
||||||
IF EXISTS (
|
IF EXISTS (
|
||||||
SELECT 1 FROM pg_constraint
|
SELECT 1 FROM pg_constraint
|
||||||
|
|
@ -19,40 +19,76 @@ DO $$ BEGIN
|
||||||
END IF;
|
END IF;
|
||||||
END $$;
|
END $$;
|
||||||
|
|
||||||
ALTER TABLE IF EXISTS public.servizio
|
DO $$ BEGIN
|
||||||
DROP COLUMN IF EXISTS doc_personale_fronte_ref;
|
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
|
DO $$ BEGIN
|
||||||
DROP COLUMN IF EXISTS doc_personale_retro_ref;
|
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
|
-- Add document references to users_anagrafica table
|
||||||
ALTER TABLE IF EXISTS public.users_anagrafica
|
DO $$ BEGIN
|
||||||
ADD COLUMN doc_personale_fronte_ref UUID;
|
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
|
DO $$ BEGIN
|
||||||
ADD COLUMN doc_personale_retro_ref UUID;
|
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 $$
|
-- Add foreign key constraints
|
||||||
BEGIN
|
DO $$ BEGIN
|
||||||
IF NOT EXISTS (
|
IF NOT EXISTS (
|
||||||
SELECT 1 FROM pg_constraint
|
SELECT 1 FROM pg_constraint
|
||||||
WHERE conname = 'anagrafica_doc_fronte'
|
WHERE conname = 'anagrafica_doc_fronte'
|
||||||
AND conrelid = 'public.users_anagrafica'::regclass
|
AND conrelid = 'public.users_anagrafica'::regclass
|
||||||
) THEN
|
) THEN
|
||||||
ALTER TABLE public.users_anagrafica
|
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)
|
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 IF;
|
||||||
|
END $$;
|
||||||
|
|
||||||
|
DO $$ BEGIN
|
||||||
IF NOT EXISTS (
|
IF NOT EXISTS (
|
||||||
SELECT 1 FROM pg_constraint
|
SELECT 1 FROM pg_constraint
|
||||||
WHERE conname = 'anagrafica_doc_retro'
|
WHERE conname = 'anagrafica_doc_retro'
|
||||||
AND conrelid = 'public.users_anagrafica'::regclass
|
AND conrelid = 'public.users_anagrafica'::regclass
|
||||||
) THEN
|
) THEN
|
||||||
ALTER TABLE public.users_anagrafica
|
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)
|
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 IF;
|
||||||
END $$;
|
END $$;
|
||||||
Loading…
Add table
Reference in a new issue