我有Nest.js
项目,我使用Prisma
作为我的ORM。下一个问题是:
我有简单的User
模型:
model User {
id String @id @default(uuid()) @db.Uuid
firstName String? @map("first_name") @db.Citext
lastName String? @map("last_name") @db.Citext
phoneNumber String? @map("phone_number") @unique
email String @unique
password String
twitter String?
linkedIn String? @map("linked_in")
personalWebsite String? @map("personal_website")
title String?
bio String?
tac Boolean
accountConfirm Boolean @map("account_confirm") @default(false)
verificationCode VerificationCodes[]
confirmHashes ConfirmationHashes[]
session Sessions?
updatedAt DateTime @default(now()) @map("updated_at") @updatedAt @db.Timestamptz(6)
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(6)
@@map("users")
}
我刚刚做的是将@@map("user")
改为@@map("users")
。我做了迁移和生成接口。基本上,数据库中表的名称已经更改,但代码中的接口没有更改。例如,在代码中我不能使用:
await this.prisma.users.create({...
上面写着-TS2551: Property 'users' does not exist on type 'PrismaService'.
。它的作用是告诉我将其更改为.user
,但这没有意义,因为我已经在schema.prisma
中更改了它。
我试图删除node_modules
,重新安装软件包,确实构建了几次,但没有为我工作。有什么问题吗?有缓存吗?我该怎么修理它?
@@map
更改数据库名称表,而不是由Prisma及其TypeScript接口生成的表。
https://www.prisma.io/docs/reference/api-reference/prisma-schema-reference map-1
在您的场景中,User
模型将始终通过prisma.user
引用。如果你想通过prisma.users
访问它,你必须在Prisma中更改模型的名称。