Rails在一个型号中使用2个公寓DB

时间:2018-04-25 07:03:25

标签: ruby-on-rails database multi-tenant

如何在一个模型中自动使用通用数据和自定义数据?常见数据位于CommonDB中,自定义数据位于CustomTenantDB中。  我建议使用字符串ID和所有数据将是唯一的。例如:1c - commonDB_id。 1 - customTenantDB_id。  如果我有id 1c,我需要在模型中设置 - 请使用commonDB。我使用两个数据库,因为我使用多租户,一些数据与所有租户共享。  我也看到了这个链接,它几乎是我所需要的,但它并没有描述如何在模型中自动完成。 Efficient way to pull data from second database?

1 个答案:

答案 0 :(得分:0)

您需要知道的一件事Rails ActiveRecord在服务器启动时一次创建一个DB连接。对于多个连接,我们必须在模型级别覆盖连接。在你的情况下有多种实现可以创建Rails"回调"在你的每个模型中,并使用回调定义连接哈希,你可以使用模型的多个连接并根据你的需要操作它或者你可以使用宝石章鱼" https://github.com/thiagopradi/octopus"

还有一个很好的博客可以帮助您:

https://medium.com/@primazp/multiple-databases-in-rails-part-1-setup-48f6d207685a