这是我们在办公室内部使用的应用程序,我想将其作为托管服务提供给任何人。

如何在不进行重大代码更改的情况下做到这一点?

对我而言,第一件事就是让应用根据域选择要连接到的数据库。

因此,该应用程序的每个实例将拥有自己的数据库,但是所有实例将共享相同的代码。

对代码的唯一更改将是数据库选择。

这种方法可以维持吗?我听说wordpress.com可以做到这一点,并且它具有很多优点。我主要是想通过这种方式来避免将整个数据库查询集限定在同一数据库内的某个特定站点上。

谢谢!

最佳答案

最简单的方法是克隆应用程序,并创建另一个服务器实例来处理它。这实际上是我在服务器上处理多个wordpress博客的方式

专业人士:

  • 此过程可以简化为实用程序脚本。
  • 如果将符号链接(symbolic link)用于通用代码,则可以轻松维护
  • 。 IE:除品牌之外的所有内容以及config目录中的某些内容。

  • 缺点:
    -如果您使用的是乘客,则需要为每个新实例重新启动apache。
    -如果您使用Apache将不同虚拟主机上的子域路由到不同的Mongrel群集,则相同。

    但是更好的方法来自以下问题:Rails - Separate Database Per Subdomain

    公认答案中的方法更加健壮。它可能需要比您想要的更多的更改,但是它具有所有优点,而没有任何其他方法的缺点。每个新实例都需要在master数据库中具有表名称和其他实例特定信息的新条目。您还将需要自定义rake任务为每个新实例构建数据库。

    关于ruby-on-rails - 如何在不更改代码的情况下将单站点应用程序变成可维护的多站点应用程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1741817/

    10-16 00:23