// prisma.config.ts // Carregar .env.local manualmente (dotenv v17 tem API diferente em ESM/CJS) import { readFileSync, existsSync } from 'fs'; import { resolve } from 'path'; function loadEnvFile(filePath: string) { if (!existsSync(filePath)) return; const content = readFileSync(filePath, 'utf-8'); for (const line of content.split('\n')) { const trimmed = line.trim(); if (!trimmed || trimmed.startsWith('#')) continue; const idx = trimmed.indexOf('='); if (idx === -1) continue; const key = trimmed.slice(0, idx).trim(); const val = trimmed.slice(idx + 1).trim().replace(/^["']|["']$/g, ''); if (!(key in process.env)) process.env[key] = val; } } // .env.local tem precedência — carregar primeiro com override manual loadEnvFile(resolve('.env.local')); loadEnvFile(resolve('.env')); import { defineConfig } from "prisma/config"; export default defineConfig({ schema: "prisma/schema.prisma", migrations: { path: "prisma/migrations", }, datasource: { // DIRECT_URL para migrações (ligação directa porta 5432) // DATABASE_URL para runtime (pooler porta 6543) url: process.env["DIRECT_URL"] ?? process.env["DATABASE_URL"], // Nota: se DIRECT_URL não estiver definida, usa DATABASE_URL como fallback }, });