Lägesmedveten DB-URL: runtime endast DATABASE_URL, tester endast TEST_DATABASE_URL

This commit is contained in:
Sven (AAMOS AI)
2026-08-06 17:43:11 +07:00
parent fd5c828f96
commit e5a9d72197
6 changed files with 50 additions and 12 deletions
+14 -1
View File
@@ -17,14 +17,27 @@ import { createDatabase } from "./client.js";
/**
* Kör alla väntande SQL-migrationer från infrastructure/migrations.
* Används i dev, CI och deploy (spec §63: migration + rollback + kontroll).
*
* `--test` eller `MIGRATE_TARGET=test` migrerar TEST_DATABASE_URL.
* Utan flagga används ENDAST DATABASE_URL deploy kan aldrig röra testdatabasen.
*/
const isTestTarget = process.argv.includes("--test") || process.env.MIGRATE_TARGET === "test";
const connectionString = isTestTarget ? process.env.TEST_DATABASE_URL : process.env.DATABASE_URL;
if (!connectionString) {
if (isTestTarget) {
throw new Error("Sätt TEST_DATABASE_URL för test-migrationer.");
}
throw new Error("Sätt DATABASE_URL innan migration körs.");
}
const migrationsFolder = path.resolve(
path.dirname(fileURLToPath(import.meta.url)),
"../../../infrastructure/migrations",
);
async function main() {
const { db, pool } = createDatabase();
const { db, pool } = createDatabase(connectionString);
console.log(`[migrate] Kör migrationer från ${migrationsFolder}`);
await migrate(db, { migrationsFolder });