运行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 参数。
解决步骤
- 重新生成 Prisma Client,同步 schema 变更到 Client 类型定义:
pnpm prisma generate
- 同步数据库 schema(开发环境推荐用
push,生产环境用migrate deploy):
pnpm prisma db push
- 重新执行 seed 命令:
pnpm prisma db seed
如果执行后仍有问题,可以尝试清除 node_modules 缓存后重新安装依赖,再重复上述步骤。
内容的提问来源于stack exchange,提问作者enbermudas
相关产品推荐
相关产品推荐

