graphql - 瑜伽graphql服务器+棱镜服务器:多租户
问题描述
我正在使用 Prisma Server 和 Yoga GraphQL 为多租户数据库设置后端环境
为了管理多租户,我们选择使用 Prisma Server 的“env”(dev/stage/prod)来处理它。没关系,Prisma 服务器不难管理,现在我们为每个租户都有一个端点,例如:http://localhost:4466/service/tenant/
之后,很容易使用 graphql get-schema 从 Prisma 中提取 *.graphql。
但是现在,困难在于:如何为我需要的服务和租户设置一个 GraphQL 服务器?
基于不同的例子 / tuto / docs / ...我找不到在我的 index.js 中设置 GraphQL Server 的方法来说:监听多个 URI 并且每个 URI 都连接了一个 prisma 服务器。
例如,我需要:
GraphQL Server 端点
http://localhost:4000/service-1/client-1/
只能是请求http://localhost:4466/service-1/client-1/
而对于
client-2
(第二个租户)http://localhost:4000/service-1/client-2/
只能是请求http://localhost:4466/service-1/client-2/
GraphQL Server 似乎每个端口只能启动一次(这里是 4000)
[编辑] 这里有一个代码来说明https://github.com/mouchimotte/prisma-yoga-multitenancy
解决方案
如果您希望使用共享数据库策略,即一个带有租户 ID 列的数据库,您可以使用此包: https ://www.npmjs.com/package/node-express-multitenant
推荐阅读
- angular - Angular9 http.get() 给出未定义
- c - Valgrind 错误对我的程序意味着什么
- c++ - 处理 Valarray
- drake - 全关节连接多体系统?
- react-native - React Native SectionList 不能可靠地呈现其部分之一
- kubernetes - Azure Functions v3、Dotnet Core v3.1 EF core /EF Core SQL 3.1.x 没有错误没有来自 Kubernetes 中的 SQL 的数据
- typescript - 如何单独导出命名空间中的所有打字稿类型?
- javascript - 为什么对复制的数组进行排序会对原始数组进行排序
- prolog - 如何在 Web 应用程序中集成 Prolog?
- date - 类似的数组公式工作,非数组公式工作,为什么不是这个数组公式?