对 Prisma 模式使用 @map 和 @@map
Use of @map and @@map for Prisma schema
我是 Prisma 的新手,一直想知道 Prisma 模式的 @map 和 @@map 有什么用?我看过他们的网站:https://www.prisma.io/docs/reference/api-reference/prisma-schema-reference#map 但仍然没有完全理解@map 和@@map 的用途。
据我所知,如果我有类似
姓氏字符串 @map("last_name") @db.VarChar(256)
它将“last_name”映射到姓氏?但是我不太确定什么时候需要这个。
谢谢!感谢任何帮助。
Maps a field name or enum value from the Prisma schema to a column or document field with a different name in the database
一个用例可能是人们将现有数据库与 prisma 集成,并希望在数据库和 prisma 客户端之间使用不同的命名约定。
例如,一个人可能对数据库列使用 snakecase,但想对 prisma 客户端使用 camelcase,那么他们会这样做:
model User {
createdAt String @map("created_at")
}
与@@map 相同,但仅用于 table 名称。
来自 prisma 的详细指南:
https://www.prisma.io/docs/concepts/components/prisma-client/working-with-prismaclient/use-custom-model-and-field-names
@map
可用于为您的列名分配不同的名称,例如,如果数据库中 table 的列名是 userLastName
但您想分配不同的名称 (user_last_name
) 并在生成的 PrismaClient
中使用不同的名称访问它,您可以使用 @map
属性。
model User {
id Int @id @default(autoincrement())
userLastName String @map("user_last_name")
}
@map
不重命名数据库中的列/字段
@map
确实更改了生成的 prisma 客户端中的字段名称
另一方面,@@map
用于为模型而不是特定字段分配不同的名称。因此,例如,如果 table 名称是 UserDetails
,并且您想在生成的客户端中将其作为 user_details
访问,您可以使用 @@map
属性。
model UserDetails {
id Int @id @default(autoincrement())
name String
@@map("users_details")
}
我是 Prisma 的新手,一直想知道 Prisma 模式的 @map 和 @@map 有什么用?我看过他们的网站:https://www.prisma.io/docs/reference/api-reference/prisma-schema-reference#map 但仍然没有完全理解@map 和@@map 的用途。
据我所知,如果我有类似 姓氏字符串 @map("last_name") @db.VarChar(256) 它将“last_name”映射到姓氏?但是我不太确定什么时候需要这个。
谢谢!感谢任何帮助。
Maps a field name or enum value from the Prisma schema to a column or document field with a different name in the database
一个用例可能是人们将现有数据库与 prisma 集成,并希望在数据库和 prisma 客户端之间使用不同的命名约定。
例如,一个人可能对数据库列使用 snakecase,但想对 prisma 客户端使用 camelcase,那么他们会这样做:
model User {
createdAt String @map("created_at")
}
与@@map 相同,但仅用于 table 名称。
来自 prisma 的详细指南:
https://www.prisma.io/docs/concepts/components/prisma-client/working-with-prismaclient/use-custom-model-and-field-names
@map
可用于为您的列名分配不同的名称,例如,如果数据库中 table 的列名是 userLastName
但您想分配不同的名称 (user_last_name
) 并在生成的 PrismaClient
中使用不同的名称访问它,您可以使用 @map
属性。
model User {
id Int @id @default(autoincrement())
userLastName String @map("user_last_name")
}
@map
不重命名数据库中的列/字段@map
确实更改了生成的 prisma 客户端中的字段名称
另一方面,@@map
用于为模型而不是特定字段分配不同的名称。因此,例如,如果 table 名称是 UserDetails
,并且您想在生成的客户端中将其作为 user_details
访问,您可以使用 @@map
属性。
model UserDetails {
id Int @id @default(autoincrement())
name String
@@map("users_details")
}