在rails 4应用程序中切换几个数据库

时间:2015-09-03 16:42:03

标签: mysql ruby-on-rails-4 multiple-databases

我目前正在创建一个rails应用程序,我必须在几个数据库之间切换。这些数据库有相同的表,但每个都代表一个不同的酒店(即:hotel1有database1,hotel2有database2等等。)这是因为每个客户都是我们业务的不同客户。现在这里是棘手的部分:一些用户可能访问多个酒店(假设有一个连锁经理可以看到与该连锁店相关的所有酒店的状态)。我已经看到了rails连接到多个数据库的不同线程,但没有看到我需要实现的数据库数量(业务正在增长)。此外,这个数据库在同一个服务器上,所以我理解,切换之间不应该是火箭科学。

要记住的事情:

  1. 客户端的数据库(database1,database2等)不是rails数据库。
  2. 每个客户的数据库都有相同的表设计,唯一改变的是数据库的名称
  3. 与rails应用程序关联的主数据库只有两个表(Users,Hotels)+实现设计,rolify和cancancan宝石的必要表。
  4. 最大的问题: 由于这些数据库不是rails数据库,我需要对每个数据库执行查询,所以" rails方式"这样做是否允许我将来升级解决方案? (将来添加更多查询)。我应该在我的应用程序中将这些非rails数据库建模为Poros吗?是否有一种设计模式可以帮助我解决这个问题?

1 个答案:

答案 0 :(得分:0)

请查看以下宝石apartmentact_as_tenant。您的要求非常类似于这些宝石提供的除了一些用户可能访问多个酒店,但我认为这仍然可以用这些宝石实现