是否可以访问有关 prisma 模型的元数据?
Posted
技术标签:
【中文标题】是否可以访问有关 prisma 模型的元数据?【英文标题】:Is it possible to access metadata about the prisma model? 【发布时间】:2021-03-23 15:38:34 【问题描述】:假设我的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 文档,还搜索了“获取有关 prisma2 中模型的元信息”之类的内容,但我没有找到任何解决方案。有没有办法做到这一点?
【问题讨论】:
【参考方案1】:是的,您可以通过以下方式获取整个架构的所有元数据:
const prisma = new PrismaClient()
// @ts-ignore
console.log(prisma._dmmf)
这将为您提供模型和关系的所有详细信息。没有记录的原因是这是高度实验性的,并且会随着版本的变化而变化,这就是它仅用于内部目的的原因。
【讨论】:
以上是关于是否可以访问有关 prisma 模型的元数据?的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 中访问 Photos.sqlite 以检索照片元数据