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
|
||||
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 $$;
|
||||
Loading…
Add table
Reference in a new issue