Back to blog

Drizzle 迁移的安全流程

Nov 3, 2026VrmMate Team

开发用 push,生产用 generate 加人工审核。

迁移的风险不在生成 SQL,而在没人看就执行。

开发期

频繁调整表结构时用 db:push,直接同步,允许丢数据。这是效率优先的选择。

生产期

改完 schema 用 db:generate 生成迁移文件,逐条检查是否有 DROP COLUMN、改类型或大表重写。确认后再 db:migrate。

不可逆操作

删列、改类型、改主键要分步骤:先加新列并双写,迁移数据,再删除旧列。一步到位在回滚时会很痛苦。

记录

迁移文件入库并随代码发布,生产环境不要手工改表结构。手工改动会让 schema 与迁移历史脱节。