【问题标题】:Has anyone tried a multi-domain/multi-database/single-deployment Rails setup?有没有人尝试过多域/多数据库/单部署 Rails 设置?
【发布时间】:2010-09-03 21:59:11
【问题描述】:

我正在开发一个应用程序(基本上是一个内部网),它有几组用户,每个用户都是在内部使用该应用程序的公司。

到目前为止,每组用户都有自己的部署,具有单独的域名和数据库,但都生活在同一台服务器上。这意味着每次我必须推送升级时,我需要为每个客户端部署一次。此外,每个新客户端都意味着添加一个新的部署目标,我目前正在为此使用 Capistrano 的多级插件,但这有点荒谬。

这是一个不太理想的设置,所以经过一番思考,我想出了修改应用程序的想法,以便它处理多个域,每个域都映射到不同的数据库,但在单个部署中。我创建了一个小型概念验证应用程序,它基本上在 ApplicationController 中有一个 before_filter,充当域/数据库的多路复用器,在每个请求上将 ActiveRecord 连接到每个域的数据库。这非常有效,但我还没有将它应用到大型应用程序中,我可以想到至少一个问题:跨所有数据库运行迁移。我很确定我可以解决这个问题,也许我会稍微调整一下 rake 任务,但我担心这可能不是它的最后一个问题。

有没有人试过这个,或者能想到任何主要原因,为什么这是一个坏主意?我想听听一些意见。

谢谢!

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    这通常称为多租户。 Here 是关于在 Rails 中进行的演示或视频。不知道好不好用,工作的时候卡在这里了。

    不,它作为一个想法没有任何问题。我不确定您的特定实施,但我过去曾开发过多租户应用程序,并且不能说我们遇到过很多困难,除非遇到麻烦的客户希望留在产品的旧版本上,而我们想要继续前进。

    【讨论】:

    • 非常感谢!这给了我很大的信心继续推动这个想法。
    【解决方案2】:

    我有一个类似的应用程序,但问题仍然和你一样,经过多次尝试,我最终(在理想的核心解决方案出现之前)每个域都有一个 env 文件,并像你一样使用过滤器。

    我已经在生产环境中运行了将近 1 年,我发现的唯一问题是 rails 预计主数据库(即使您不会使用它)具有与其他数据库相同的迁移级别。 (这个问题在某些情况下会出现)

    如果您需要更多详细信息,请告诉我。

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多