在生产中升级Rails

时间:2014-10-25 13:05:22

标签: ruby-on-rails-3 upgrade

我有一个Rails 3.2.14应用程序,我想升级到3.2.19。我已经在我的开发环境中通过更改我的Gemfile来完成此操作:gem 'rails', '~> 3.2.19'并运行bundle update rails。这会在本地更新Rails版本,因为只运行bundle会给我一个Gemfile.lock错误。

到目前为止,移至3.2.19还没有在我的应用程序中引入任何问题,我已准备好投入生产。

我的问题是,当我提交cap deployGemfile之后我执行Gemfile.lock时,我的生产环境会自动获取Rails版本的更改并使用bundler进行更新吗?或者我必须部署然后手动运行RAILS_ENV=prod bundle exec update rails

我之前已经在生产中升级了Rails,但是自从我这样做以来它已经永远存在并且对于它的工作方式有点模糊。我希望尽可能缩短部署时间,避免任何应用程序停机。

感谢您提供的任何建议。祝你有美好的一天!

1 个答案:

答案 0 :(得分:2)

如果您有一个默认工作流,您可以将更改提交给git之类的东西,使用capistrano将最新的master推送到生产环境也应该在服务器上运行bundler并使用新的依赖项启动应用程序。

要确保它能够满足您的需求,请设置一个可以部署更改的流行框,或者为部署配置类似的已配置的临时服务器。

另外,请阅读deploy.rb和Capfile。