返回 Bug 清单
BUG-0531project-52中已修复database-schema

Prisma 复合 @@unique map 参数不影响 TypeScript 生成的 WhereUniqueInput key

发现:2026-10-07验证:2026-10-27置信度:70%

症状

写 prisma.user.findUnique({ where: { user_platform_unique: { ... } } }) → TS red underline。必须用 userId_platform 当 key。

根因

Prisma schema 写 @@unique([userId, platform], map: 'user_platform_unique')。map 参数只控制 SQL index 名,不影响 TS 生成的 WhereUniqueInput key。TS 里实际生成的 key 是字段名字母序拼接 → userId_platform(不是 user_platform_unique)。按 SQL 名去查 Prisma 报错 property does not exist。

修复方案

记住 Prisma 的铁律:map 只给 SQL 用,TypeScript 生成的 WhereUniqueInput key 永远是字段名按字母序拼接。schema 里写了就要手动去生成的 .prisma/client/index.d.ts 里确认实际字段名,按那个写代码。

错误签名

Property 'user_platform_unique' does not exist on type 'UserWhereUniqueInput'

技术信息

来源项目

project-52

涉及文件

packages/prisma/schema.prisma

标签

project-52, mcp-reported, source-agent