// Migrations-Runner für das Laufzeit-Image (plain ESM, ohne tsx/drizzle-kit).
// Wendet die Drizzle-Migrationen aus ./drizzle idempotent über das Journal an.
// Liest DATABASE_URL direkt aus der Umgebung (keine Next.js-Env-Validierung),
// analog zu scripts/migrate.ts.
import { drizzle } from "drizzle-orm/node-postgres";
import { migrate } from "drizzle-orm/node-postgres/migrator";
import pg from "pg";

const { Pool } = pg;

const connectionString = process.env.DATABASE_URL;
if (!connectionString) {
  console.error("DATABASE_URL ist nicht gesetzt.");
  process.exit(1);
}

const pool = new Pool({ connectionString, max: 1 });
const db = drizzle(pool);

try {
  await migrate(db, { migrationsFolder: "./drizzle" });
  console.log("Migrationen erfolgreich angewandt.");
} catch (err) {
  console.error("Migration fehlgeschlagen:", err);
  process.exitCode = 1;
} finally {
  await pool.end();
}
