我正在使用Postgresql架构开发多租户Rails应用程序。一切都很顺利,但我的情况与传统的多租户应用程序略有不同;即我的应用程序将要求我将每个租户的客户数据从他们的数据库中提取到我的。
这是棘手的地方。我写了一个jRuby gem连接到每个客户的数据库并将数据提取到我的服务器,然后它处理该数据并将其加载到我的Rails应用程序中(每个客户数据集将以适当的租户模式结束)。因此,这个gem是唯一知道我所有租户及其配置的地方(数据库信息,要拉的表,等等)。
我的问题是:您如何看待这种设计选择?我已经看到的一些问题是,这迫使应用程序处于两个Ruby状态,即它通常在Ruby中运行,但是当我需要执行拉动时,我必须切换到jRuby。此外,如果不依靠这个宝石,很难检查租户配置。
对此有何评论或反馈?我可以用另一条路走吗?