chore: sincroniza projeto para gitea
This commit is contained in:
64
scripts/corrigir_constraint_final.sql
Normal file
64
scripts/corrigir_constraint_final.sql
Normal file
@@ -0,0 +1,64 @@
|
||||
-- Corrigir constraints da tabela configuracoes
|
||||
|
||||
-- 1. Remover a constraint incorreta (configuracoes_tipo_key)
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'configuracoes_tipo_key'
|
||||
AND conrelid = 'public.configuracoes'::regclass
|
||||
) THEN
|
||||
ALTER TABLE public.configuracoes DROP CONSTRAINT configuracoes_tipo_key;
|
||||
RAISE NOTICE 'Constraint configuracoes_tipo_key removida';
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- 2. Garantir que existe constraint UNIQUE na coluna 'chave'
|
||||
DO $$
|
||||
BEGIN
|
||||
-- Primeiro remover duplicados na coluna 'chave' (mantendo o mais recente)
|
||||
DELETE FROM public.configuracoes
|
||||
WHERE id IN (
|
||||
SELECT id
|
||||
FROM (
|
||||
SELECT id, chave,
|
||||
ROW_NUMBER() OVER (PARTITION BY chave ORDER BY updated_at DESC NULLS LAST, created_at DESC) as rn
|
||||
FROM public.configuracoes
|
||||
WHERE chave IS NOT NULL
|
||||
) t
|
||||
WHERE rn > 1
|
||||
);
|
||||
RAISE NOTICE 'Duplicados removidos da coluna chave';
|
||||
|
||||
-- Adicionar constraint UNIQUE em 'chave' se não existir
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'configuracoes_chave_key'
|
||||
AND conrelid = 'public.configuracoes'::regclass
|
||||
) THEN
|
||||
ALTER TABLE public.configuracoes ADD CONSTRAINT configuracoes_chave_key UNIQUE (chave);
|
||||
RAISE NOTICE 'Constraint UNIQUE adicionada na coluna chave';
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- 3. Verificar constraints existentes
|
||||
SELECT
|
||||
conname as constraint_name,
|
||||
contype as constraint_type,
|
||||
a.attname as column_name
|
||||
FROM pg_constraint c
|
||||
JOIN pg_attribute a ON a.attnum = ANY(c.conkey) AND a.attrelid = c.conrelid
|
||||
WHERE c.conrelid = 'public.configuracoes'::regclass
|
||||
ORDER BY conname;
|
||||
|
||||
-- 4. Verificar estrutura final
|
||||
SELECT column_name, data_type, is_nullable
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'public'
|
||||
AND table_name = 'configuracoes'
|
||||
ORDER BY ordinal_position;
|
||||
|
||||
-- 5. Mostrar dados
|
||||
SELECT id, chave, tipo, descricao, created_at, updated_at
|
||||
FROM public.configuracoes
|
||||
ORDER BY chave;
|
||||
Reference in New Issue
Block a user