我可以一起使用 prisma 和 node-postgres 吗

Can I use prisma and node-postgres tougether

我开始使用 prisma especially for handling database migrations. It handles that well. But there are many open issues for things that it does not handle well related to queries (biggest are related to queryRaw not always working as expected and with no straight forward way to use postgreSQL Row Level Security). Everything I've found to be a problem related to queries in prsima can easily be done in node-postgres

我从文档中了解到,其中一些问题在 knexjs 中不是问题,但 prisma 具有功能更丰富的迁移设置 (automatic and can be customized)。

我可以安全地同时使用 prismanode-postgres 吗?如果是这样,如何?例如,使用 prisma 进行架构设计和数据库迁移,并使用 node-postgres 进行所有查询逻辑?

是的,您可以安全地同时使用 prismanode-postgres

您的工作流程将如下所示:

  1. 创建一个 Prisma Schema 来定义您的模型和基础数据库表。
  2. 使用 Prisma CLIprisma npm 库)运行 迁移到您的数据库。这将在 node_modules/.prisma/client 目录中生成客户端,您可以选择将其删除,因为您不会使用它。
  3. 不要在节点应用程序中使用生成的 Prisma Client,而是使用 node-postgres 库对应用程序中的数据库进行 运行 查询。

由于您仅使用 Prisma 对数据库结构进行任何类型的迁移或更改,因此不存在 Prisma 架构未与数据库同步的风险。如果确实发生这种情况,您始终可以使用 prisma db pull.

使其恢复同步

此外,由于您的应用程序不会使用 Prisma 客户端连接到数据库进行 运行ning 查询,node-postgres 将处理连接池。