Files
advx/prisma/migrations/[timestamp]_update_audiencias_safe.sql
T
2025-04-10 23:07:21 -03:00

44 lines
1.3 KiB
SQL

-- Limpar migrações anteriores
DELETE FROM "_prisma_migrations"
WHERE migration_name LIKE '%add_audiencia_report%';
-- Atualizar tabela de audiências de forma segura
DO $$
BEGIN
-- Adicionar novas colunas se não existirem
BEGIN
ALTER TABLE "audiencias"
ADD COLUMN IF NOT EXISTS "relatorio" TEXT,
ADD COLUMN IF NOT EXISTS "dataFinalizacao" TIMESTAMP WITH TIME ZONE;
EXCEPTION
WHEN duplicate_column THEN
NULL;
END;
-- Atualizar tipo da coluna status
ALTER TABLE "audiencias"
ALTER COLUMN "status" TYPE VARCHAR(20);
-- Remover constraint antiga se existir
IF EXISTS (
SELECT 1
FROM information_schema.constraint_column_usage
WHERE constraint_name = 'audiencias_status_check'
) THEN
ALTER TABLE "audiencias"
DROP CONSTRAINT "audiencias_status_check";
END IF;
-- Adicionar nova constraint
ALTER TABLE "audiencias"
ADD CONSTRAINT "audiencias_status_check"
CHECK (status IN ('AGENDADA', 'REALIZADA', 'CANCELADA', 'REDESIGNADA'));
-- Atualizar registros existentes
UPDATE "audiencias"
SET status = 'AGENDADA'
WHERE status NOT IN ('AGENDADA', 'REALIZADA', 'CANCELADA', 'REDESIGNADA')
OR status IS NULL;
END $$;