36 lines
1.3 KiB
TypeScript
36 lines
1.3 KiB
TypeScript
// 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
|
|
},
|
|
});
|