import { existsSync } from "node:fs"; import { dirname, resolve } from "node:path"; import { fileURLToPath } from "node:url"; import { migrate } from "drizzle-orm/postgres-js/migrator"; import type { Database } from "./index"; const migrationsFolder = resolve( dirname(fileURLToPath(import.meta.url)), "../drizzle", ); export async function runMigrations(db: Database) { if ((process.env.ENABLE_DB_MIGRATIONS ?? "").toLowerCase() !== "true") { console.log("Skipping migrations (ENABLE_DB_MIGRATIONS != true)."); return; } const journalFile = resolve(migrationsFolder, "meta/_journal.json"); if (!existsSync(journalFile)) { console.log("Skipping migrations (no drizzle migration files found)."); return; } console.log("Running migrations..."); await migrate(db, { migrationsFolder }); console.log("Migrations complete."); }