Lägesmedveten DB-URL: runtime endast DATABASE_URL, tester endast TEST_DATABASE_URL
This commit is contained in:
@@ -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 });
|
||||
|
||||
|
||||
Reference in New Issue
Block a user