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

添加@unique的ID字段引发Prisma部署失败及查询字段重复错误

解决Prisma部署及Seed时的字段冲突问题

我来帮你梳理下这个问题的核心原因和解决步骤,你遇到的两个报错其实是关联的:

一、prisma deploy 500错误的根源

你在Species模型里给id字段手动添加了@unique约束,但Prisma的ID类型默认就自带@unique属性,手动添加属于冗余配置,触发了公共演示环境的内部校验逻辑报错。

修正方案:把datamodel.graphql里的两个模型的id字段调整为默认写法,去掉手动的@unique:

type Spot {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  lat: String!
  long: String!
  name: String!
  fishes: [Species!]!
}

type Species {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  name: String!
  spots: [Spot!]!
}

二、prisma seed -r的Query字段重复错误

这个报错是因为模板自带的seed.graphql里已经定义了一个名为species的Query字段,而Prisma根据你的Species模型自动生成了同名的查询字段(用于单条记录查询),两者名称冲突导致校验失败。

解决步骤:

  1. 打开seed.graphql,找到Query类型下的species字段,比如类似这样的代码:
    type Query {
      species: Species
      # 其他模板自带的字段...
    }
    
  2. 要么删除这个自定义的species字段(因为Prisma已经自动生成了标准的species(where: SpeciesWhereUniqueInput!): Species查询),要么把它重命名为不重复的名称(比如getSingleSpecies)。

三、完整的修复流程

按照以下顺序执行操作,确保彻底清除旧的缓存和冲突:

  • 删除项目根目录下的.prisma文件夹(这是Prisma的本地缓存目录)
  • 执行 prisma reset 重置云端服务状态
  • 执行 prisma deploy 重新部署修正后的模型
  • 最后执行 prisma seed -r 完成数据填充

这样应该就能解决你遇到的两个问题了。

内容的提问来源于stack exchange,提问作者Seldon Stone

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:59:10