【发布时间】:2010-09-03 21:59:11
【问题描述】:
我正在开发一个应用程序(基本上是一个内部网),它有几组用户,每个用户都是在内部使用该应用程序的公司。
到目前为止,每组用户都有自己的部署,具有单独的域名和数据库,但都生活在同一台服务器上。这意味着每次我必须推送升级时,我需要为每个客户端部署一次。此外,每个新客户端都意味着添加一个新的部署目标,我目前正在为此使用 Capistrano 的多级插件,但这有点荒谬。
这是一个不太理想的设置,所以经过一番思考,我想出了修改应用程序的想法,以便它处理多个域,每个域都映射到不同的数据库,但在单个部署中。我创建了一个小型概念验证应用程序,它基本上在 ApplicationController 中有一个 before_filter,充当域/数据库的多路复用器,在每个请求上将 ActiveRecord 连接到每个域的数据库。这非常有效,但我还没有将它应用到大型应用程序中,我可以想到至少一个问题:跨所有数据库运行迁移。我很确定我可以解决这个问题,也许我会稍微调整一下 rake 任务,但我担心这可能不是它的最后一个问题。
有没有人试过这个,或者能想到任何主要原因,为什么这是一个坏主意?我想听听一些意见。
谢谢!
【问题讨论】:
标签: ruby-on-rails