Сборка Nextjs: свойство не существует для типа PrismaClient

Я запускаю приложение NextJS (TypeScript) с Prisma на Netlify. Недавно я добавил новую модель под названием 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
}

Я сгенерировал файл миграции и запустил миграцию как в локальной, так и в рабочей среде и убедился, что новая таблица присутствует в обеих базах данных.

Все работает нормально локально, но когда я пытаюсь выполнить развертывание в 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({

Плагин prisma добавлен на сайт и все работало с другими моделями, пока я не добавил эту новую модель. Пытаюсь выяснить, почему клиент Prisma не знает о новой модели в производстве.

Любая помощь приветствуется!


1
260
1

Ответ:

Решено

Я смог решить эту проблему, обновив скрипт сборки в package.json.

"scripts": {
    "dev": "next dev",
    "build": "prisma generate && next build",
    "start": "next start",
    "lint": "next lint"
  },

Это запускает команду prisma generate в производственной среде и создает новый клиент prisma.