在Prisma Schema中编辑枚举为何需要创建新迁移?
为什么修改Prisma枚举需要创建新迁移?
你的原始枚举定义:
enum OrderStatus { paymentDone OrderCreated OrderConfirmed }
当你添加orderCancelled枚举值时,Prisma要求创建迁移的核心原因和PostgreSQL的枚举特性直接相关:
- PostgreSQL中的枚举类型是静态不可变的:一旦在数据库中创建了枚举类型,就不能直接修改它的取值集合,既不能新增、删除也不能修改已有枚举值。
- Prisma的核心作用是保持你的Schema定义和数据库实际结构完全同步:当你在Prisma Schema里更新了枚举,Prisma需要生成对应的迁移文件,通过执行特定的DDL语句(比如先创建临时枚举、更新关联表、替换原枚举、删除临时枚举的流程)来把新的枚举值同步到数据库中。
- 迁移是Prisma管理数据库结构变更的唯一安全方式:它能确保变更过程可追溯、可回滚,避免直接手动修改数据库导致的Schema和代码不一致问题。
内容的提问来源于stack exchange,提问作者vishal krishna
相关产品推荐
相关产品推荐

