34 lines
1.4 KiB
SQL
34 lines
1.4 KiB
SQL
-- Garante que a tabela configuracoes existe e tem a estrutura correta
|
|
|
|
-- Se a tabela já existe, vamos garantir que ela tenha a estrutura correta
|
|
DO $$
|
|
BEGIN
|
|
-- Criar tabela se não existir
|
|
IF NOT EXISTS (SELECT FROM pg_tables WHERE schemaname = 'public' AND tablename = 'configuracoes') THEN
|
|
CREATE TABLE public.configuracoes (
|
|
id uuid DEFAULT gen_random_uuid() NOT NULL PRIMARY KEY,
|
|
tipo character varying NOT NULL,
|
|
valor jsonb,
|
|
created_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
updated_at timestamp with time zone DEFAULT now() NOT NULL
|
|
);
|
|
END IF;
|
|
|
|
-- Garantir que a constraint UNIQUE existe
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM pg_constraint
|
|
WHERE conname = 'configuracoes_tipo_key'
|
|
AND conrelid = 'public.configuracoes'::regclass
|
|
) THEN
|
|
ALTER TABLE public.configuracoes ADD CONSTRAINT configuracoes_tipo_key UNIQUE (tipo);
|
|
END IF;
|
|
END $$;
|
|
|
|
-- Adiciona índice no campo tipo para melhor performance (se não existir)
|
|
CREATE INDEX IF NOT EXISTS idx_configuracoes_tipo ON public.configuracoes(tipo);
|
|
|
|
-- Adiciona comentários
|
|
COMMENT ON TABLE public.configuracoes IS 'Armazena todas as configurações do sistema';
|
|
COMMENT ON COLUMN public.configuracoes.tipo IS 'Tipo da configuração (chave única)';
|
|
COMMENT ON COLUMN public.configuracoes.valor IS 'Valor da configuração em formato JSON';
|