我开始学习 prisma 来替换我的 nextJS 应用程序中的 nodejs 后端。
似乎 prisma 不适用于在我的 mysql 数据库中创建的视图和存储过程。
如果我不能只使用视图和存储过程,那么切换到 prisma 是否还有意义,这允许我在数据库中创建一个只能访问这两个而不能访问其他内容的用户。
任何 prisma 专业人士都可以证实或否认我的想法
谢谢
Tas*_*mam 11
虽然Prisma 目前不直接支持这两个功能,但存在一些解决方法,可以将这两个功能与 Prisma 一起使用。对于这两种情况,您都需要直接在 SQL 中执行一些操作。
您可以使用$executeRaw
and$queryRaw
命令通过 Prisma 执行原始 SQL 查询。您可以使用它来执行您创建的过程。例如,如果您有一个名为的存储过程,foobar
则可以按如下方式执行它:
const rawSQL = `call foobar`;
const result = await prisma.$executeRaw(rawSQL);
Run Code Online (Sandbox Code Playgroud)
您还可以用来$executeRaw
生成存储过程或使用您选择的工具/CLI。
查看原始数据库访问文章,$executeRaw
了解有关和 的更多信息 $queryRaw
,以及两者之间的区别。
存在通过 Prisma 使用视图的工作流程。工作流程是这样的:
您可以找到有关如何在 MySQL 中使用 SQL 视图的深入指南以及讨论和当前限制。
对于这两个功能,我强烈建议在生产应用程序中采用 Prisma 之前先尝试您的用例。例如,过去用户在运行将数据返回给客户端的过程时遇到一些困难(不过现在应该已修复)。
此外,如果您遇到任何问题或错误,请随时在 Prisma github 存储库上创建问题。我们非常积极,将尽力帮助解决问题。
归档时间: |
|
查看次数: |
8509 次 |
最近记录: |