【发布时间】:2020-06-26 01:10:10
【问题描述】:
用例
在基于模式的多租户应用程序中,通常一个数据库具有多个模式。一种模式是存储通用应用程序数据的主要模式,一个模式用于应用程序的每个租户。每次向系统注册新客户时,都会在数据库中自动创建一个新的隔离模式。这意味着,模式是在运行时创建的,并且事先不知道。客户的模式是根据客户的域命名的。当请求进入系统时,验证用户并使用主模式上的数据选择模式。然后大多数/所有后续数据库操作都转到特定于租户的模式。如您所见,我们要使用的架构仅在运行时才知道。
问题
如何在运行时选择架构?我们正在使用 postgres 连接器。我们应该能够在运行时切换模式。
另一个问题是如何为不同的租户运行迁移?
注意事项:
db-schema 需要以请求范围的方式设置,以避免为其他可能属于其他客户的请求设置架构。为整个连接设置架构不是一种选择。
【问题讨论】:
-
好问题!我也有这个问题!如果有办法即时切换到模式就好了!
-
@EdwinIkechukwuOkonkwo 接受的答案效果很好。你可以试试看。谢谢
标签: loopbackjs loopback4