【发布时间】:2022-01-22 22:57:46
【问题描述】:
我想实现一个多租户解决方案,其中我有一个网络服务器和一个数据库,所有租户共享。关于这个blog post from AWS,它是“池化多租户模型”。
我正在使用nest.js 和sequelize。如果 sequelize 不适合这个,我也可以在必要时切换到另一个库,比如 typeORM。
如何实现?我完全不知道如何为每个 HTTP 请求使用不同的连接(不同的数据库用户),而且我也不知道如何以一种好的方式为连接设置运行时上下文变量。
我目前得到的是每个 HTTP 请求都包含一个标头 tenant-id。这应该用于所有查询。
还有scopes in sequelize的概念。但这是在客户端实现的,而不是直接在数据库上实现的。此外,这是特定于续集的东西。我更喜欢独立于 sequelize 并且可能更具体到 PostgreSQL 的解决方案。
有没有办法用 sequelize 来实现呢?提示或基本方法就足够了。
【问题讨论】:
标签: postgresql sequelize.js database-connection nestjs multi-tenant