You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Prisma Introspection不兼容我的数据库枚举值命名?

疑问:npx prisma db pull 时枚举值"0"被注释,命名问题出在哪?

我尝试对现有数据库执行Introspection生成Prisma Schema,执行命令:

npx prisma db pull

收到以下警告:

These enum values were commented out because their names are currently not supported by Prisma. 
Please provide valid ones that match [a-zA-Z][a-zA-Z0-9_]* using the `@map` attribute:
  - Enum: "orderstatus_type", value: "0"

不清楚命名哪里违规了,求解答。


问题根源

Prisma对枚举值的命名有硬性规则:必须以字母开头,后续可以跟字母、数字或下划线,对应正则表达式[a-zA-Z][a-zA-Z0-9_]*。你数据库里的枚举值"0"是纯数字开头,不符合这个规则,所以被自动注释。

解决步骤

手动修改生成的Prisma Schema,给这个枚举值起一个符合规则的内部名称,再用@map属性映射回数据库里的原始值"0"。示例如下:

enum orderstatus_type {
  // 把原来的"0"替换成合法名称,比如PENDING,用@map关联数据库值
  PENDING @map("0")
  // 其他枚举值正常保留
  // ...
}

修改完成后,运行npx prisma generate更新Prisma客户端,之后在代码里使用orderstatus_type.PENDING,Prisma会自动映射到数据库中的"0"值。

内容的提问来源于stack exchange,提问作者w.k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 18:22:43