用途:在修改数据库结构时,用 Drizzle Kit 生成规范的迁移文件,让 src/lib/schema.ts 与 drizzle/ 下的迁移保持同步,适用于新增表、增删列、增改索引等场景。
主要能力:通过 drizzle-kit generate 依据 schema.ts 生成迁移 SQL;Drizzle 用 drizzle/meta/ 中的快照文件跟踪 schema 状态,自动生成可保持快照一致。
使用方式:先改 src/lib/schema.ts(用 pgTable() 加表、加列、加索引),再运行 pnpm drizzle-kit generate,生成如 0011_descriptive_name.sql 的文件,然后审查迁移内容。开始前应先读当前 schema 与最近 2-3 个迁移,理解现状。若配置了本地数据库,可用 pnpm build 自动跑迁移,pnpm cli stats 验证查询;仅当 POSTGRES_URL 指向本地时才本地测试,指向生产则跳过,迁移会在 Vercel 部署时自动执行。
限制与禁忌:绝不手写 SQL 迁移文件,手写不会更新快照,会导致后续 generate 报错并破坏迁移系统;不要用 IF NOT EXISTS 或 IF EXISTS,生成迁移不会包含;不要改 schema.ts 却不 generate,不要修改已应用到生产的迁移,数据迁移应放到 scripts/ 的独立脚本。提交前确认 schema.ts 与迁移匹配、同一提交、迁移干净。