DO $$ BEGIN -- 1. Remover constraints existentes se existirem IF EXISTS (SELECT 1 FROM information_schema.table_constraints WHERE constraint_name = 'audiencias_processoId_fkey') THEN ALTER TABLE "audiencias" DROP CONSTRAINT "audiencias_processoId_fkey"; END IF; IF EXISTS (SELECT 1 FROM information_schema.table_constraints WHERE constraint_name = 'fk_partes_processo_processo') THEN ALTER TABLE "partes_processo" DROP CONSTRAINT "fk_partes_processo_processo"; END IF; IF EXISTS (SELECT 1 FROM information_schema.table_constraints WHERE constraint_name = 'movimentacoes_processoId_fkey') THEN ALTER TABLE "movimentacoes" DROP CONSTRAINT "movimentacoes_processoId_fkey"; END IF; -- 2. Garantir que todas as colunas são UUID ALTER TABLE "processos" ALTER COLUMN "id" TYPE UUID USING COALESCE("id"::UUID, gen_random_uuid()); ALTER TABLE "audiencias" ALTER COLUMN "processoId" TYPE UUID USING "processoId"::UUID; ALTER TABLE "partes_processo" ALTER COLUMN "processoId" TYPE UUID USING "processoId"::UUID; ALTER TABLE "movimentacoes" ALTER COLUMN "processoId" TYPE UUID USING "processoId"::UUID; -- 3. Recriar as foreign keys ALTER TABLE "audiencias" ADD CONSTRAINT "audiencias_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE; ALTER TABLE "partes_processo" ADD CONSTRAINT "fk_partes_processo_processo" FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE; ALTER TABLE "movimentacoes" ADD CONSTRAINT "movimentacoes_processoId_fkey" FOREIGN KEY ("processoId") REFERENCES "processos"("id") ON DELETE CASCADE; END $$;