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

Prisma查询报错:数据库无OwnerID列,模型与数据库匹配问题

解决方案

不需要新增OwnerID列,是你的Prisma模型配置有误,问题出在字段与数据库列的映射关系上。

问题原因

你在模型中通过@relation(fields: [OwnerID], references: [ID])指定用OwnerID字段关联HubUser,但Prisma默认会将模型字段名直接映射为数据库列名,它会去数据库中查找OwnerID列,而你的数据库实际外键列是Owner,因此报错。

两种修正方式

方式一:修改模型字段名匹配数据库列

直接将模型中的OwnerID字段名改为Owner,让字段名与数据库列名一致:

model Organization {
  ID          Int     @id @unique @default(autoincrement())
  Name        String  @db.VarChar(50)
  UniqueName  String  @unique @db.VarChar(12)
  LoginScheme String  @unique @db.VarChar(100)
  Owner       HubUser @relation(fields: [Owner], references: [ID])
  Owner       Int

  @@map("organizations")
}

方式二:用@map注解映射字段到数据库列

如果不想修改模型字段名,给OwnerID字段添加@map注解,指定它对应数据库中的Owner列:

model Organization {
  ID          Int     @id @unique @default(autoincrement())
  Name        String  @db.VarChar(50)
  UniqueName  String  @unique @db.VarChar(12)
  LoginScheme String  @unique @db.VarChar(100)
  Owner       HubUser @relation(fields: [OwnerID], references: [ID])
  OwnerID     Int     @map("Owner")

  @@map("organizations")
}

后续操作

修正模型后,重新运行:

npx prisma generate

生成新的客户端代码,之后查询就能正常关联数据库的Owner列了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 13:39:40