prisma - 是否可以访问有关 prisma 模型的元数据?
问题描述
假设我的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会type
为每个生成一个model
,这样也许我可以通过这种方式访问这些字段,但这对我来说还不够,我还想要有关每个字段的信息。
我搜索了 prisma 文档,还搜索了诸如“获取有关 prisma2 中模型的元信息”之类的内容,但我没有找到任何解决方案。有没有办法做到这一点?
解决方案
是的,您可以通过以下方式获取整个架构的所有元数据:
const prisma = new PrismaClient()
// @ts-ignore
console.log(prisma._dmmf)
这将为您提供模型和关系的所有详细信息。没有记录的原因是这是高度实验性的,并且会随着版本的变化而变化,这就是它仅用于内部目的的原因。
推荐阅读
- python - 没有名为“simplekml”的模块
- c++ - 将 hls 直播转换为 rtmp
- mysql - WPdatatables WP 插件无法识别最近添加的 SQL 列
- node.js - 如何使用 mqtt、nodejs 和 socket.io 发送实时数据到 Flutter
- javascript - 从作用域函数更新 alpinejs 数据不会反映在另一个作用域函数中
- go - 如何知道上下文是否已被取消?
- constraints - 如何在系统 verilog 中实现被 4 和 10 约束整除?
- java - 使用 Jpa Entitymanager 调用包含声明性块和可执行块的 Sql 语句
- apache-spark - 从数据帧 A 中删除所有不在数据帧 B 中的数据(巨大的 df1,火花)
- flutter - 从一页到另一页抖动接收数组