Ruby on rails Multitenant Rails应用程序-获取客户数据的策略

Ruby on rails Multitenant Rails应用程序-获取客户数据的策略,ruby-on-rails,architecture,jruby,multi-tenant,Ruby On Rails,Architecture,Jruby,Multi Tenant,我正在使用Postgresql模式开发一个多租户Rails应用程序。一切进展顺利,但我的情况与传统的多租户应用程序略有不同;也就是说,我的应用程序将要求我将每个租户的客户数据从他们的数据库拉到我的数据库中 这就是它变得棘手的地方。我编写了一个jRuby gem,它连接到每个客户的数据库并将数据拉到我的服务器,然后它处理这些数据并将其加载到我的Rails应用程序中。每个客户的数据集最终都将位于相应的租户模式中。因此,这个gem是唯一一个它知道所有租户及其配置数据库信息、要拉哪些表等的地方 我的问题

我正在使用Postgresql模式开发一个多租户Rails应用程序。一切进展顺利,但我的情况与传统的多租户应用程序略有不同;也就是说,我的应用程序将要求我将每个租户的客户数据从他们的数据库拉到我的数据库中

这就是它变得棘手的地方。我编写了一个jRuby gem,它连接到每个客户的数据库并将数据拉到我的服务器,然后它处理这些数据并将其加载到我的Rails应用程序中。每个客户的数据集最终都将位于相应的租户模式中。因此,这个gem是唯一一个它知道所有租户及其配置数据库信息、要拉哪些表等的地方

我的问题是:你觉得这个设计选择怎么样?我已经看到的一些问题是,这迫使应用程序处于两种Ruby状态,即它通常在Ruby中运行,但当我需要执行拉操作时,我必须切换到jRuby。此外,如果不使用此gem,很难检查租户配置


对此有何评论或反馈?有没有别的方法可以让我这样做

写一个Ruby gem而不是jRuby gem?让Ruby gem将配置数据写入只有您有SELECT权限的数据库表?鉴于客户端使用专有JDBC驱动程序,jRuby是唯一的选项。此外,除了读取分配给我的表之外,我对客户数据没有任何权限。