首页 > 解决方案 > 瑜伽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

标签: graphqlmulti-tenantprismaprisma-graphql

解决方案


如果您希望使用共享数据库策略,即一个带有租户 ID 列的数据库,您可以使用此包: https ://www.npmjs.com/package/node-express-multitenant


推荐阅读