Primeiro commit
This commit is contained in:
56
sql/create-tables-safe.sql
Normal file
56
sql/create-tables-safe.sql
Normal file
@@ -0,0 +1,56 @@
|
||||
-- =====================================================
|
||||
-- SCRIPT DE CRIAÇÃO DAS TABELAS - LIBERI KIDS ESTOQUE
|
||||
-- VERSÃO SEGURA (SEM CONFLITOS)
|
||||
-- =====================================================
|
||||
|
||||
-- 9. TABELA DE CONFIGURAÇÕES (NOVA)
|
||||
CREATE TABLE IF NOT EXISTS configuracoes (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
tipo TEXT NOT NULL UNIQUE,
|
||||
configuracao JSONB NOT NULL,
|
||||
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
|
||||
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
|
||||
);
|
||||
|
||||
-- =====================================================
|
||||
-- ÍNDICES PARA A NOVA TABELA
|
||||
-- =====================================================
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_configuracoes_tipo ON configuracoes(tipo);
|
||||
|
||||
-- =====================================================
|
||||
-- TRIGGER PARA UPDATED_AT (APENAS PARA NOVA TABELA)
|
||||
-- =====================================================
|
||||
|
||||
-- Criar trigger apenas se não existir
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_trigger
|
||||
WHERE tgname = 'update_configuracoes_updated_at'
|
||||
) THEN
|
||||
CREATE TRIGGER update_configuracoes_updated_at
|
||||
BEFORE UPDATE ON configuracoes
|
||||
FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- =====================================================
|
||||
-- RLS PARA A NOVA TABELA
|
||||
-- =====================================================
|
||||
|
||||
-- Habilitar RLS
|
||||
ALTER TABLE configuracoes ENABLE ROW LEVEL SECURITY;
|
||||
|
||||
-- Criar política apenas se não existir
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_policies
|
||||
WHERE tablename = 'configuracoes'
|
||||
AND policyname = 'Enable all operations for authenticated users'
|
||||
) THEN
|
||||
CREATE POLICY "Enable all operations for authenticated users"
|
||||
ON configuracoes FOR ALL USING (true);
|
||||
END IF;
|
||||
END $$;
|
||||
Reference in New Issue
Block a user