Ale*_*dre 5 ruby database-design web-applications ruby-on-rails
这是我们在办公室内部使用的应用程序,我希望将其作为托管服务提供给任何人.
如果不进行重大代码更改,我该怎么做?
我遇到的第一件事就是让应用程序根据域选择要连接的数据库.
因此,应用程序的每个实例都有自己的数据库,但所有实例都将共享相同的代码.
代码所需的唯一更改是数据库选择.
这种方法可以维持吗?我听说wordpress.com这样做,它提供了一些优势.我主要是希望这样做,以避免将我的整个数据库查询范围扩展到同一数据库中的某个站点.
谢谢!
最简单的方法是克隆应用程序,并创建另一个服务器实例来处理它。这实际上是我在服务器上处理多个 WordPress 博客的方式
专业人士:
缺点: - 如果您使用乘客,则需要为每个新实例重新启动 apache。- 如果您使用 Apache 将不同虚拟主机上的子域路由到不同的混合集群,则相同。
然而,更好的方法来自这个问题:Rails - 每个子域单独的数据库
接受的答案中的方法更加稳健。它可能需要比您想要的更多的更改,但它具有所有优点,并且没有任何其他方法的缺点。每个新实例都需要在主数据库中添加一个新条目,其中包含表名和其他实例特定信息。您还需要自定义 rake 任务来为每个新实例构建数据库。
| 归档时间: |
|
| 查看次数: |
218 次 |
| 最近记录: |