infoalloggi-monorepo/apps/db/migrations/29_potenziali_groups.up.sql

45 lines
No EOL
1.2 KiB
SQL

-- Potenziali Groups Table
CREATE TABLE IF NOT EXISTS public.potenziali_groups (
id UUID DEFAULT gen_random_uuid () NOT NULL,
name TEXT NOT NULL,
color TEXT DEFAULT 'blue' NOT NULL
);
-- Primary Key
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'potenziali_groups_pkey'
AND conrelid = 'public.potenziali_groups'::regclass
) THEN
ALTER TABLE public.potenziali_groups
ADD CONSTRAINT potenziali_groups_pkey PRIMARY KEY (id);
END IF;
END $$;
-- Foreign Key to Potenziali Groups
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'potenziali_group_fk'
AND conrelid = 'public.potenziali'::regclass
) THEN
ALTER TABLE public.potenziali
ADD CONSTRAINT potenziali_group_fk
FOREIGN KEY (potenziali_group_id) REFERENCES public.potenziali_groups (id)
ON UPDATE CASCADE ON DELETE CASCADE;
END IF;
END $$;
-- Create Index on Potenziali Group ID
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM pg_indexes
WHERE indexname = 'idx_potenziali_group_id'
) THEN
CREATE INDEX idx_potenziali_group_id
ON public.potenziali (potenziali_group_id);
END IF;
END $$;