From aee45e29fdbbe9dc5c97073ee5647885c2b1d683 Mon Sep 17 00:00:00 2001 From: florianfederspiel Date: Wed, 25 Mar 2026 17:14:03 +0100 Subject: [PATCH] Added Abschreibungen --- backend/scripts/migrate.ts | 47 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 backend/scripts/migrate.ts diff --git a/backend/scripts/migrate.ts b/backend/scripts/migrate.ts new file mode 100644 index 0000000..c29bf11 --- /dev/null +++ b/backend/scripts/migrate.ts @@ -0,0 +1,47 @@ +import "dotenv/config" +import path from "node:path" +import { fileURLToPath } from "node:url" +import { drizzle } from "drizzle-orm/node-postgres" +import { migrate } from "drizzle-orm/node-postgres/migrator" +import { Pool } from "pg" + +import { loadSecrets, secrets } from "../src/utils/secrets" + +const __filename = fileURLToPath(import.meta.url) +const __dirname = path.dirname(__filename) + +async function run() { + let connectionString = process.env.DATABASE_URL + + if (!connectionString) { + await loadSecrets() + connectionString = secrets.DATABASE_URL + } + + if (!connectionString) { + throw new Error("DATABASE_URL not configured") + } + + const pool = new Pool({ + connectionString, + max: 1, + }) + + try { + const db = drizzle(pool) + + await migrate(db, { + migrationsFolder: path.resolve(__dirname, "../db/migrations"), + }) + + console.log("✅ Drizzle-Migrationen erfolgreich angewendet") + } finally { + await pool.end() + } +} + +run().catch((err) => { + console.error("❌ Migration fehlgeschlagen") + console.error(err) + process.exit(1) +})