是否可以访问有关棱镜模型的元数据?
Is it possible to access metadata about the prisma model?
假设我的 schema.prisma
文件中有一个模型:
model Post {
id Int @id @default(autoincrement())
author User @relation(fields: [authorId], references: [id])
authorId Int
}
我的服务器中有一个名为 model
的变量,其中包含模型名称
const model: string = [model name generated dynamically]
使用这个字符串我想知道关于这个模型的每一个信息。例如,如果这个变量 model
恰好是 Post
,我想知道它有字段 id, author, authorId
以及关于每个字段的信息,比如 author
它引用了哪个模型中的哪个字段,在此示例中模型 User
字段 id
.
我知道 prisma 为每个 model
生成一个 type
,这样也许我可以通过这种方式访问这些字段,但这对我来说还不够,我想要有关每个字段的信息字段也是如此。
我搜索了 prisma 文档,还用谷歌搜索了类似 'get meta information about model in prisma2' 的内容,但我没有找到任何解决方案。有办法实现吗?
是的,您可以通过以下方式获取整个模式的所有元数据:
const prisma = new PrismaClient()
// @ts-ignore
console.log(prisma._dmmf)
这将为您提供模型和关系的所有详细信息。未记录的原因是这是高度实验性的,并且会随着版本而改变,这就是它仅用于内部目的的原因。
假设我的 schema.prisma
文件中有一个模型:
model Post {
id Int @id @default(autoincrement())
author User @relation(fields: [authorId], references: [id])
authorId Int
}
我的服务器中有一个名为 model
的变量,其中包含模型名称
const model: string = [model name generated dynamically]
使用这个字符串我想知道关于这个模型的每一个信息。例如,如果这个变量 model
恰好是 Post
,我想知道它有字段 id, author, authorId
以及关于每个字段的信息,比如 author
它引用了哪个模型中的哪个字段,在此示例中模型 User
字段 id
.
我知道 prisma 为每个 model
生成一个 type
,这样也许我可以通过这种方式访问这些字段,但这对我来说还不够,我想要有关每个字段的信息字段也是如此。
我搜索了 prisma 文档,还用谷歌搜索了类似 'get meta information about model in prisma2' 的内容,但我没有找到任何解决方案。有办法实现吗?
是的,您可以通过以下方式获取整个模式的所有元数据:
const prisma = new PrismaClient()
// @ts-ignore
console.log(prisma._dmmf)
这将为您提供模型和关系的所有详细信息。未记录的原因是这是高度实验性的,并且会随着版本而改变,这就是它仅用于内部目的的原因。