import { dirname, resolve } from 'node:path'; import { fileURLToPath } from 'node:url'; import { drizzle } from 'drizzle-orm/postgres-js'; import { migrate } from 'drizzle-orm/postgres-js/migrator'; import postgres from 'postgres'; import { DEFAULT_DATABASE_URL } from './defaults.js'; export async function runMigrations(url?: string): Promise { const connectionString = url ?? process.env['DATABASE_URL'] ?? DEFAULT_DATABASE_URL; const sql = postgres(connectionString, { max: 1 }); const db = drizzle(sql); const __dirname = dirname(fileURLToPath(import.meta.url)); try { await migrate(db, { migrationsFolder: resolve(__dirname, '../drizzle') }); } finally { await sql.end(); } }