// 用法:tsx scripts/migrate.ts latest|reset import { createDb, migrateToLatest, resetSchema } from "../src"; const cmd = process.argv[2] ?? "latest"; const db = createDb({ max: 1 }); try { if (cmd === "reset") { if (process.env.NODE_ENV === "production") throw new Error("生产环境禁止 db:reset"); await resetSchema(db); console.log("已清空 public schema"); } else if (cmd !== "latest") { throw new Error(`未知命令: ${cmd}`); } const { results } = await migrateToLatest(db); for (const r of results ?? []) console.log(`${r.status}\t${r.migrationName}`); if (!results?.length) console.log("已是最新,无待执行迁移"); } catch (err) { console.error(err); process.exitCode = 1; } finally { await db.destroy(); }