Derivar DATABASE_URL desde DB_* en prisma.config.ts
En despliegues Dockerfile (Coolify) no existe DATABASE_URL y prisma migrate deploy abortaba al arrancar. Ahora la URL se arma desde las mismas DB_* que usan la app y el seed. Co-Authored-By: Claude Fable 5 <[email protected]>
This commit is contained in:
co-authored by
Claude Fable 5
parent
4ee87f1a26
commit
ab190560d2
+2
-1
@@ -8,7 +8,8 @@ DB_USER=postgres
|
||||
DB_PASSWORD=postgres
|
||||
DB_NAME=cotizador_e3
|
||||
|
||||
# Solo la usa el CLI de Prisma (migraciones). Debe coincidir con DB_*.
|
||||
# Opcional: solo la usa el CLI de Prisma (migraciones). Si no la defines,
|
||||
# se construye automáticamente desde las DB_* (ver prisma.config.ts).
|
||||
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/cotizador_e3"
|
||||
|
||||
# ── Auth ──
|
||||
|
||||
+14
-1
@@ -1,6 +1,19 @@
|
||||
import "dotenv/config";
|
||||
import { defineConfig } from "prisma/config";
|
||||
|
||||
// El CLI de Prisma (migrate deploy) necesita una URL. Si DATABASE_URL no está
|
||||
// definida (p. ej. despliegue Dockerfile en Coolify), se arma desde las DB_*
|
||||
// que ya usan la app y el seed — así ambas vías apuntan a la misma BD.
|
||||
function databaseUrl(): string {
|
||||
if (process.env["DATABASE_URL"]) return process.env["DATABASE_URL"];
|
||||
const host = process.env["DB_HOST"] || "localhost";
|
||||
const port = process.env["DB_PORT"] || "5432";
|
||||
const user = encodeURIComponent(process.env["DB_USER"] || "postgres");
|
||||
const password = encodeURIComponent(process.env["DB_PASSWORD"] || "postgres");
|
||||
const name = process.env["DB_NAME"] || "cotizador_e3";
|
||||
return `postgresql://${user}:${password}@${host}:${port}/${name}`;
|
||||
}
|
||||
|
||||
export default defineConfig({
|
||||
schema: "prisma/schema.prisma",
|
||||
migrations: {
|
||||
@@ -8,6 +21,6 @@ export default defineConfig({
|
||||
seed: "npx tsx prisma/seed.ts",
|
||||
},
|
||||
datasource: {
|
||||
url: process.env["DATABASE_URL"],
|
||||
url: databaseUrl(),
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user