如何回滚Prisma本地开发环境中不需要的数据库迁移?
Prisma migrate dev 执行后的便捷回滚方式(PostgreSQL)
针对本地开发环境下执行prisma migrate dev后的回滚,有几种比手动处理更便捷的方式:
1. 使用 prisma migrate dev --undo(推荐,Prisma 4.16.0+)
如果你的Prisma版本在4.16.0及以上,直接运行这个命令就能自动完成两件事:
- 回滚最近一次应用的开发迁移对应的数据库变更
- 删除项目中对应的迁移文件
这个命令是专门为开发环境设计的撤销操作,无需手动操作数据库或迁移文件。
2. 旧版本Prisma的回滚流程
如果你的Prisma版本低于4.16.0,可按以下步骤操作:
- 先在PostgreSQL中执行迁移文件的反向SQL操作(比如迁移是创建表,就执行
DROP TABLE <表名>;新增字段就执行ALTER TABLE <表名> DROP COLUMN <字段名>) - 运行
prisma migrate resolve --rolled-back <迁移文件名>,更新Prisma的_prisma_migrations表,标记该迁移为已回滚状态 - 最后删除项目中对应的迁移文件
3. 彻底重置开发数据库(prisma migrate reset)
如果不需要保留数据库中的数据,或者想直接回到schema.prisma定义的初始状态,可运行prisma migrate reset。这个命令会:
- 清空数据库所有数据
- 删除所有已应用的迁移记录
- 重新应用所有未被标记为已回滚的迁移文件
注意:这个操作会彻底清除数据库数据,仅适合开发环境使用。
内容的提问来源于stack exchange,提问作者Yair Nevet
相关产品推荐
相关产品推荐

