【问题标题】:Switching between several databases in rails 4 application在 Rails 4 应用程序中的多个数据库之间切换
【发布时间】:2015-09-04 06:09:02
【问题描述】:

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

注意事项:

  1. 客户端的数据库(database1、database2 等)不是 rails 数据库。
  2. 每个客户端的数据库都有相同的表设计,唯一改变的是数据库的名称
  3. 与 rails 应用程序关联的主数据库只有两个表(Users、Hotels)+ 实现 devise、rolify 和 cancancan gem 所需的表。

最大的问题: 由于这些数据库不是 Rails 数据库,我需要对每个数据库执行查询,那么“rails 方式”是什么让我可以在未来升级解决方案? (将来添加更多查询)。我应该在我的应用程序中将这些非 Rails 数据库建模为 Poros 吗?有没有设计模式可以帮助我解决这个问题?

【问题讨论】:

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


    【解决方案1】:

    请查看以下宝石apartmentact_as_tenant。您的要求与这些 gem 提供的非常相似,除了 某些用户可能可以访问不止一家酒店,但我认为这些 gem 仍然可以实现这一点

    【讨论】:

    • 我正在浏览这些宝石,如果我理解正确,这个解决方案需要我将我的非 Rails 数据库转换为 Rails 数据库?我还发现了似乎能够处理组织和用户的 Milia gem。 github.com/dsaronin/milia
    • @Esparratacus 您需要任何多租户 gem ..... 只要确保您使用任何定期维护的多租户 gem ....
    猜你喜欢
    • 1970-01-01
    • 2012-03-24
    • 2021-12-25
    • 1970-01-01
    • 1970-01-01
    • 2016-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多