【发布时间】:2012-05-22 13:46:50
【问题描述】:
我即将使用 Ruby On Rails 构建一个multitenancy 应用程序。每个客户端都将通过 YAML 文件(或最终存储在数据库中的任何东西,无论工作如何)拥有自己的个性化配置。鉴于销售流程和每个客户所需的配置数量,开发团队将构建配置文件。预计客户端数量少于 100 个。
您如何覆盖特定客户端的代码(控制器、视图、布局)(即:每个客户端一个模块?)如何在 Rails 中完成?
【问题讨论】:
-
您是否考虑过为每个客户提供自己的应用程序和数据库?这将很容易在 heroku 上部署和扩展(基于每个客户端)
-
@Seamus Asbhere 我并不真正关心这个特定应用程序的规模。对于目标市场,我们不可能有规模问题。即使我们这样做了,我们也可以轻松地对数据库进行分区。对于拆分代码库,我认为这太需要维护了,你不觉得吗?
-
您可以让每个人都脱离主分支的单独部署,直到任何一个客户需要自定义。您将为该客户创建一个分支。然后您可以定期将 master 合并回每个自定义分支。这似乎比在模型、控制器、视图等中放置多个客户端自定义更可靠。
标签: ruby-on-rails ruby-on-rails-3 multi-tenant