【发布时间】:2021-02-20 04:50:39
【问题描述】:
我有 3 个 Prisma2 表,其中 User 可以有很多 Sheet 而只有一个 Doc
model User {
id Int @default(autoincrement()) @id
firstName String
lastName String
email String @unique
sheets Sheet[]
docs Doc?
}
model Sheet {
id Int @default(autoincrement()) @id
user_sheets Int
User User @relation(fields: [user_sheets], references: [id])
sheetName String
}
model Doc {
id Int @default(autoincrement()) @id
user_doc Int?
User User? @relation(fields: [user_doc], references: [id])
docName String
}
我正在使用这样的 Prisma2 Client 来获取具有特定电子邮件 ID 的用户的所有工作表和文档:
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient();
const users = await prisma.user.findMany({
where: {
email: email
},
include: {
sheets: true,
docs: true,
}
});
我已经完成了migrate-save、migrate-up和generate
我得到的错误是这样的:
PrismaClientValidationError:
Invalid `prisma.user.findMany()` invocation in
webpack-internal:///./pages/api/resume.js:12:47
{
include: {
sheets: true
~~~~~~
docs: true
~~~~~~
}
}
Unknown field `sheets` for include statement on model User.
This model has no relations, so you can't use include with it.
请帮助我理解并解决它,因为我使用了 prisma2 文档并遵循了本教程:https://www.youtube.com/watch?v=jeHJbYLCgzI
但没有运气,错误继续困扰着我。
【问题讨论】:
-
嗯,这很奇怪!架构看起来应该允许该查询。只是预感,但也许尝试
rm -rf node_modules,然后使用npm install重新安装依赖项。有时,架构更改后 Prisma Client 可能无法正确更新... -
如果问题仍然存在,我建议您open an issue on GitHub,因为这可能是您遇到的错误。
-
@nburk 感谢您抽出宝贵时间研究此问题,我发现了问题。当您说重新安装 node_modules 时,我停止了服务器并重新运行命令
yarn run dev并解决了问题。我的错误是我没有停止服务器并在yarn generate命令生成 Prisma Client 之后重新启动。 -
听起来不错,很高兴听到你能解决这个问题! :)