fix(prisma): garantir DATABASE_URL efetivo no runtime\n\n- Força resolução do DATABASE_URL ao instanciar PrismaClient com fallback seguro em produção para file:/app/data/db.sqlite.\n- Evita falha "Error code 14: Unable to open the database file" quando o runtime cai em path relativo do .env dentro do container.\n- Compatível com stack.yml (volume sistema_db montado em /app/data).

This commit is contained in:
Esdras Renan 2025-10-09 16:22:01 -03:00
parent 06c4efd173
commit d031acf7b8
2 changed files with 18 additions and 4 deletions

View file

@ -4,7 +4,19 @@ declare global {
var prisma: PrismaClient | undefined
}
export const prisma = global.prisma ?? new PrismaClient()
// Resolve a robust DATABASE_URL for all runtimes (prod/dev)
const resolvedDatabaseUrl = (() => {
const envUrl = process.env.DATABASE_URL?.trim()
if (envUrl && envUrl.length > 0) return envUrl
// Fallbacks by environment to ensure correctness in containers
if (process.env.NODE_ENV === "production") {
return "file:/app/data/db.sqlite"
}
return "file:./prisma/db.sqlite"
})()
export const prisma =
global.prisma ?? new PrismaClient({ datasources: { db: { url: resolvedDatabaseUrl } } })
if (process.env.NODE_ENV !== "production") {
global.prisma = prisma