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

运行pnpm prisma db seed时出现Unknown argument `pinned`错误求助

问题:Prisma Seed 时提示 pinned 参数未知

问题背景

我定义了如下 Prisma 模型:

model Thread {
  id         Int       @id @default(autoincrement())
  authorId   String
  subforumId Int
  createdAt  DateTime  @default(now())
  updatedAt  DateTime  @updatedAt
  title      String
  content    String
  pinned     Boolean   @default(false)
  deleted    DateTime?
  posts      Post[]
  author     User      @relation(fields: [authorId], references: [id])
  subforum   Subforum  @relation(fields: [subforumId], references: [id])
}

但执行 pnpm prisma db seed 时,seed.ts 出现如下错误:

报错信息

Unknown argument `pinned`. Available options are listed in green.
    at Ur (D:\Sandbox\forumix\node_modules\.pnpm\@prisma+client@5.1.1_prisma@5.1.1\node_modules\@prisma\client\runtime\library.js:115:5852)
    at Hr.handleRequestError (D:\Sandbox\forumix\node_modules\.pnpm\@prisma+client@5.1.1_prisma@5.1.1\node_modules\@prisma\client\runtime\library.js:122:6698)
    at Hr.handleAndLogRequestError (D:\Sandbox\forumix\node_modules\.pnpm\@prisma+client@5.1.1_prisma@5.1.1\node_modules\@prisma\client\runtime\library.js:122:6388)
    at Hr.request (D:\Sandbox\forumix\node_modules\.pnpm\@prisma+client@5.1.1_prisma@5.1.1\node_modules\@prisma\client\runtime\library.js:122:6108)
    at async l (D:\Sandbox\forumix\node_modules\.pnpm\@prisma+client@5.1.1_prisma@5.1.1\node_modules\@prisma\client\runtime\library.js:126:10298)
    at async seed (D:\Sandbox\forumix\prisma\seed.ts:74:5) {
  clientVersion: '5.1.1'
}

The seed command has been executed.

Seed 脚本代码(seed.ts)

const db = new PrismaClient();

await db.thread.createMany({
  data: [
    {
      title: "Registro de Oficios",
      content: "¿Qué hace tu personaje?",
      authorId: admin.id,
      subforumId: 1,
      pinned: true,
    },
    {
      title: "Registro de PBs",
      content: "Revisa este tema antes de elegir un físico para tu personaje.",
      authorId: admin.id,
      subforumId: 1,
      pinned: true,
    },
    {
      title: "Sistema de Combates",
      content: "Este tutorial te mostrará todo lo necesario para combatir en el foro.",
      authorId: admin.id,
      subforumId: 2,
      pinned: true,
    },
    {
      title: "Economía",
      content: "¿Cómo funciona el sistema económico del foro? Acá te explicaremos todo lo referente a ello.",
      authorId: admin.id,
      subforumId: 2,
      pinned: true,
    },
    {
      title: "Misiones",
      content: "Este tipo de rol te permitirá ganar experiencia y dinero.",
      authorId: admin.id,
      subforumId: 2,
      pinned: true,
    },
    {
      title: "Arruina el deseo",
      content:
        "Debes responder a este tema pidiendo un nuevo deseo luego de arruinar el deseo de arriba. Deseo cantar como un famoso!",
      authorId: marySue.id,
      subforumId: 3,
    },
  ],
  skipDuplicates: true,
});

package.json 中的 Seed 脚本

"db:seed": "ts-node --require tsconfig-paths/register prisma/seed.ts"

原因与解决方法

核心原因

修改 schema.prisma 添加 pinned 字段后,没有重新生成 Prisma Client,导致当前使用的 Client 中不存在该字段的定义,所以在 seed 时会识别不了 pinned 参数。

解决步骤

  1. 重新生成 Prisma Client,同步 schema 变更到 Client 类型定义:
pnpm prisma generate
  1. 同步数据库 schema(开发环境推荐用 push,生产环境用 migrate deploy):
pnpm prisma db push
  1. 重新执行 seed 命令:
pnpm prisma db seed

如果执行后仍有问题,可以尝试清除 node_modules 缓存后重新安装依赖,再重复上述步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 19:18:13