如果我需要 mysql 在 nextJS 中查看和存储过程,prisma 有什么用
prisma any good if i need mysql view and stored procedures in nextJS
我开始学习 prisma 来替换我的 nextJS 应用程序中的 nodejs 后端。
似乎 Prisma 无法与我的 mysql 数据库中创建的视图和存储过程一起使用。
如果我不能只使用视图和存储过程,那么切换到 prisma 有什么意义吗?它允许我在数据库中创建一个只能访问这两个而不能访问其他任何内容的用户。
任何可以证实或否定我的想法的 prisma 专家
感谢
虽然目前 Prisma 不直接 支持这两个功能,但存在变通方法,可以将这两个功能与 Prisma 一起使用。对于两者,您都需要直接在 SQL.
中执行一些操作
存储过程
您可以使用 $executeRaw
和 $queryRaw
命令通过 Prisma 执行原始 SQL 查询。您可以使用它来执行您创建的过程。例如,如果您有一个名为 foobar
的存储过程,您可以按如下方式执行它:
const rawSQL = `call foobar`;
const result = await prisma.$executeRaw(rawSQL);
您还可以使用 $executeRaw
来 生成 存储过程或使用您选择的 tool/CLI。
查看 Raw database access article 了解有关 $executeRaw
和 $queryRaw
的更多信息,以及两者之间的区别。
MySQL 查看
存在通过 Prisma 使用视图的工作流程。工作流程是这样的:
- 直接使用 SQL 创建视图。
- 内省数据库以更新您的 Prisma 架构。
- 手动将视图模型添加到 Prisma Schema。
- 生成 Prisma 客户端并使用为视图创建的实体 class 运行 查询。
您可以在 how to use SQL Views in MySQL 上找到深入的指南以及讨论和当前限制。
建议
对于这两个功能,我强烈建议在生产应用程序中采用 Prisma 之前先试用您的用例。例如,过去用户在 运行 执行 return data back to the client 的过程时会遇到一些困难(不过现在应该已修复)。
此外,如果您遇到任何问题或错误,请随时在 Prisma github 回购上 create a issue。我们非常积极,会尽力帮助解决问题。
我开始学习 prisma 来替换我的 nextJS 应用程序中的 nodejs 后端。
似乎 Prisma 无法与我的 mysql 数据库中创建的视图和存储过程一起使用。
如果我不能只使用视图和存储过程,那么切换到 prisma 有什么意义吗?它允许我在数据库中创建一个只能访问这两个而不能访问其他任何内容的用户。
任何可以证实或否定我的想法的 prisma 专家
感谢
虽然目前 Prisma 不直接 支持这两个功能,但存在变通方法,可以将这两个功能与 Prisma 一起使用。对于两者,您都需要直接在 SQL.
中执行一些操作存储过程
您可以使用 $executeRaw
和 $queryRaw
命令通过 Prisma 执行原始 SQL 查询。您可以使用它来执行您创建的过程。例如,如果您有一个名为 foobar
的存储过程,您可以按如下方式执行它:
const rawSQL = `call foobar`;
const result = await prisma.$executeRaw(rawSQL);
您还可以使用 $executeRaw
来 生成 存储过程或使用您选择的 tool/CLI。
查看 Raw database access article 了解有关 $executeRaw
和 $queryRaw
的更多信息,以及两者之间的区别。
MySQL 查看
存在通过 Prisma 使用视图的工作流程。工作流程是这样的:
- 直接使用 SQL 创建视图。
- 内省数据库以更新您的 Prisma 架构。
- 手动将视图模型添加到 Prisma Schema。
- 生成 Prisma 客户端并使用为视图创建的实体 class 运行 查询。
您可以在 how to use SQL Views in MySQL 上找到深入的指南以及讨论和当前限制。
建议
对于这两个功能,我强烈建议在生产应用程序中采用 Prisma 之前先试用您的用例。例如,过去用户在 运行 执行 return data back to the client 的过程时会遇到一些困难(不过现在应该已修复)。
此外,如果您遇到任何问题或错误,请随时在 Prisma github 回购上 create a issue。我们非常积极,会尽力帮助解决问题。