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:
parent
06c4efd173
commit
d031acf7b8
2 changed files with 18 additions and 4 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue