在 Nestjs 和 prisma api 中,我想将审核列添加到我的数据库中。
编写映射以在每个实体的每个创建/更新方法中获取
user.id
是很麻烦的。在 Spring Data Rest 中,这就是他们进行审核的方式:
@CreatedBy
private User user;
@CreatedDate
private DateTime createdDate;
例如,在 prisma 中,我可以在架构中使用
@updatedAt
注释来获得更新的数据列,而无需编写代码。
我希望在 prisma 或我的 NestJS 代码中拥有
@createdBy
和 @updatedBy
审核注释来审核创建或修改行的已连接 user.id。
这怎么可能?
Prisma 没有原生的“用户”概念,因此您需要自己添加。
https://www.prisma.io/docs/orm/reference/prisma-schema-reference#attributes
您需要在 Prisma 模式中创建一个
User
模型,然后手动将关系添加到相应的模型。如果您将指向 User
的字段设为必填项,则在不指定 User
的情况下,您将无法创建该模型的实例。
model User {
id String @id
createdAt DateTime @default(now())
createdDocuments Document[] @relation(name: "DocumentsCreatedByUser")
lastModifiedDocuments Document[] @relation(name: "DocumentsLastModifiedByUser")
}
model Document {
id String @id
createdAt DateTime @default(now())
userCreatedBy User @relation(fields: [userCreatedById], references: [id], onDelete: Cascade, name: "DocumentsCreatedByUser")
userCreatedById String
userLastModifiedBy User? @relation(fields: [userLastModifiedById], references: [id], onDelete: SetNull, name: "DocumentsLastModifiedByUser")
userLastModifiedById String?
}