Nextjs 构建:类型“PrismaClient”上不存在属性

juj*_*uju 3 typescript netlify next.js prisma

我正在 Netlify 上使用 Prisma 运行 NextJS 应用程序 (TypeScript)。我最近添加了一个名为 Trade 的新模型。这是 Prisma 架构文件:

generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

model Contract {
  id              Int     @id @default(autoincrement())
  contractAddress String  @unique
  baseUri         String
  tokenName       String  @default("")
  verified        Boolean @default(false)
}

model Trade {
  id      Int @id @default(autoincrement())
  tradeId Int @unique
  status  Int
}
Run Code Online (Sandbox Code Playgroud)

我生成了迁移文件,并在本地和生产中运行了迁移,并验证了新表是否存在于两个数据库中。

一切在本地运行良好,但当我尝试部署到 Netlify 时,我在 Netlify 的构建日志中收到此错误:

Type error: Property 'trade' does not exist on type 'PrismaClient<PrismaClientOptions, never, RejectOnNotFound | RejectPerOperation | undefined>'.
12:37:51 PM:   10 |     return res.status(400).send({ message: "No trade ID provided" })
12:37:51 PM:   11 |   try {
12:37:51 PM: > 12 |     const tradeInDatabase = await prisma.trade.findFirst({
Run Code Online (Sandbox Code Playgroud)

prisma 插件已添加到网站,并且一切都可以与其他模型一起使用,直到我添加这个新模型。试图找出为什么 Prisma 客户不知道生产中的新模型。

任何帮助表示赞赏!

juj*_*uju 6

我能够通过更新 package.json 中的构建脚本来解决这个问题

"scripts": {
    "dev": "next dev",
    "build": "prisma generate && next build",
    "start": "next start",
    "lint": "next lint"
  },
Run Code Online (Sandbox Code Playgroud)

这将在生产环境中运行 prismagenerate 命令并生成新的 prisma 客户端。