Prisma迁移时避免数据丢失及跳过数据库重置的方法
Prisma 新增字段无需重置数据库的解决方案
针对生产环境已有用户数据的场景,完全不需要重置数据库,只需通过Prisma的迁移工具安全完成字段添加,具体步骤如下:
修改
schema.prisma中的User模型,新增email字段时必须设为可选(加?)或指定默认值,避免原有记录因缺少字段值报错:model User { id Int @id @default(autoincrement()) name String age Int email String? // 可选字段,原有记录自动填充为NULL // 或者给默认值:email String @default('no-email@example.com') }生成迁移文件但暂不执行,方便检查SQL内容是否符合预期:
prisma migrate dev --create-only打开生成的迁移文件(路径:
prisma/migrations/[时间戳]_迁移名称/migration.sql),确认新增字段的SQL语句,比如可选字段对应的SQL是:ALTER TABLE "User" ADD COLUMN "email" TEXT;执行迁移,将变更应用到数据库(生产环境专用命令):
prisma migrate deploy最后更新Prisma客户端,让代码能识别新添加的字段:
prisma generate
关键注意事项
- 绝对不要在生产环境使用
prisma migrate reset,该命令会清空所有数据库数据。 - 生产环境操作前务必备份数据库,以防意外情况发生。
内容的提问来源于stack exchange,提问作者Mr Right
相关产品推荐
相关产品推荐

