import { drizzle } from "drizzle-orm/node-postgres"; import { migrate } from "drizzle-orm/node-postgres/migrator"; import { Pool } from "pg"; /** * Programmatischer Migrations-Runner. * * Verwendet `drizzle-orm/node-postgres/migrator` mit dem Drizzle-Journal, * sodass mehrfaches Ausführen idempotent ist (bereits angewandte Migrationen * werden übersprungen). Liest `DATABASE_URL` direkt aus der Umgebung, um nicht * von der Next.js-Env-Validierung abhängig zu sein. */ async function main(): Promise { const connectionString = process.env.DATABASE_URL; if (!connectionString) { throw new Error("DATABASE_URL ist nicht gesetzt."); } const pool = new Pool({ connectionString, max: 1 }); const db = drizzle(pool); try { await migrate(db, { migrationsFolder: "./drizzle" }); console.log("Migrationen erfolgreich angewandt."); } finally { await pool.end(); } } main().catch((err: unknown) => { console.error("Migration fehlgeschlagen:", err); process.exit(1); });