diff --git a/internal-packages/dashboard-agent-db/migrate-status.mjs b/internal-packages/dashboard-agent-db/migrate-status.mjs index 8b3791a06b..1f66c000fc 100644 --- a/internal-packages/dashboard-agent-db/migrate-status.mjs +++ b/internal-packages/dashboard-agent-db/migrate-status.mjs @@ -8,12 +8,13 @@ import postgres from "postgres"; const MIGRATIONS_SCHEMA = "drizzle"; const MIGRATIONS_TABLE = "__dashboard_agent_migrations"; -// Match migrate.mjs: a direct (non-pooler) connection, same precedence. -const connectionString = +// Match migrate.mjs: same precedence, and expand `${VAR}` refs (see migrate.mjs). +const connectionString = ( process.env.DASHBOARD_AGENT_DIRECT_URL ?? process.env.DASHBOARD_AGENT_DATABASE_URL ?? process.env.DIRECT_URL ?? - process.env.DATABASE_URL; + process.env.DATABASE_URL +)?.replace(/\$\{(\w+)\}/g, (_, k) => process.env[k] ?? ""); if (!connectionString) { console.error( diff --git a/internal-packages/dashboard-agent-db/migrate.mjs b/internal-packages/dashboard-agent-db/migrate.mjs index ba4e4c6c80..cff97c4bc6 100644 --- a/internal-packages/dashboard-agent-db/migrate.mjs +++ b/internal-packages/dashboard-agent-db/migrate.mjs @@ -14,11 +14,14 @@ import postgres from "postgres"; // can't run the migrator. Prefer the agent's direct url, then its pooled url, // then the main DIRECT_URL/DATABASE_URL (OSS single-database fallback; tables // still land in the `trigger_dashboard_agent` schema). -const connectionString = +// `.replace` expands `${VAR}` refs (e.g. the repo .env's DIRECT_URL=${DATABASE_URL}); +// node's --env-file loads them literally, unlike Prisma's dotenv-expand. +const connectionString = ( process.env.DASHBOARD_AGENT_DIRECT_URL ?? process.env.DASHBOARD_AGENT_DATABASE_URL ?? process.env.DIRECT_URL ?? - process.env.DATABASE_URL; + process.env.DATABASE_URL +)?.replace(/\$\{(\w+)\}/g, (_, k) => process.env[k] ?? ""); if (!connectionString) { console.error( diff --git a/internal-packages/dashboard-agent-db/package.json b/internal-packages/dashboard-agent-db/package.json index b91535c0e9..15a1d9d732 100644 --- a/internal-packages/dashboard-agent-db/package.json +++ b/internal-packages/dashboard-agent-db/package.json @@ -16,8 +16,8 @@ "typecheck": "tsc --noEmit", "db:generate": "drizzle-kit generate", "db:migrate": "drizzle-kit migrate", - "db:migrate:deploy": "node migrate.mjs", - "db:migrate:status": "node migrate-status.mjs", + "db:migrate:deploy": "node --env-file-if-exists=../../.env migrate.mjs", + "db:migrate:status": "node --env-file-if-exists=../../.env migrate-status.mjs", "db:studio": "drizzle-kit studio" } }