部署自己的Rails应用程序非常简单。但是,我发现尝试将第三方Rails应用程序保留在版本控制下并进行部署非常痛苦。
假设我想要一个现有的RoR应用程序(在我的情况下它是Redmine,但这可以应用于任何应用程序,甚至超越Rails),并将其部署在我的(传统)托管服务器上。我想确保我可以撤消对配置或本地自定义所做的任何更改,但我也希望能够定期升级到最新版本。
Redmine的公共git存储库有一个.gitignore
文件,其中包含配置yaml文件和会话存储等内容。这对于开发是有意义的,但肯定不适合部署。
似乎我有几个选择:
这些选项对我来说都不是特别优雅或简单,所以我到目前为止采取了简单的方法:什么都不做。
这似乎是一个常见问题,但我无法找到真正涵盖此问题的任何博客或问题。您如何处理部署第三方Web应用程序?
答案 0 :(得分:0)
有些选择是:
有许多使用capistrano运行数据库迁移的教程,您可以将它们全部保存在git中
这样做的好处是能够设置和运行各种部署,包括添加服务器等。
使用一个地方自动执行这些迁移。
设置一个CI服务器(例如:Jenkins),它监视上游存储库(origin
或live
或其他)并执行在那里提交的迁移。此外,Jenkins可以设置为在repo中监视回滚,并在复制更新的代码之前执行免费的向下迁移。
如果CI设置过度,那么就有git托管/部署服务在中间做得很好。我使用Springloops进行简单部署,使用REST钩子在每个部署上执行数据库迁移。不幸的是,它只适用于“向上”迁移,“向下”迁移仍然是手工完成的。