/** * Apply pending Drizzle SQL migrations. * * Used locally via `pnpm db:migrate` and in production via the web container * entrypoint (`node .output/server/migrate.mjs` before the server starts). */ import path from "node:path"; import { drizzle } from "drizzle-orm/libsql"; import { migrate } from "drizzle-orm/libsql/migrator"; const rawUrl = process.env.TURSO_DATABASE_URL; const authToken = process.env.TURSO_AUTH_TOKEN; const migrationsFolder = path.join(process.cwd(), "drizzle"); async function main() { if (!rawUrl) { throw new Error("TURSO_DATABASE_URL is required"); } console.log(`Applying migrations from ${migrationsFolder} to ${rawUrl}`); const db = drizzle({ connection: { url: rawUrl, authToken }, }); await migrate(db, { migrationsFolder }); console.log("Migrations complete"); } main().catch((err) => { console.error("Migration failed:", err); process.exit(1); });