升级 Rails 应用程序的简单方法是啥?
Posted
技术标签:
【中文标题】升级 Rails 应用程序的简单方法是啥?【英文标题】:What is the easy way to upgrade rails application?升级 Rails 应用程序的简单方法是什么? 【发布时间】:2018-02-13 11:37:51 【问题描述】:我正在从事一个非常古老的 Rails 项目。 gemfile是这样的:
source 'http://rubygems.org'
gem 'rails', '2.3.17'
gem 'rake', '0.8.7'
gem 'rdoc', '3.6.1'
gem 'mysql', '2.8.1'
gem 'roo', '1.9.7'
gem 'rubyzip', '0.9.4'
gem 'pdf-writer', '1.1.8'
gem 'prawn', '0.12.0'
gem 'sendmail'
gem 'htmldoc', '0.2.3'
ruby 版本是 1.8.7
升级此 Rails 应用程序的简单方法是什么?我可以将每个 gem 的版本更改为最新版本并期望它可以正常工作吗?
【问题讨论】:
不,你显然不能。更重要的是,几乎所有事情都需要人工干预,因为自2.3.17
以来许多接口都发生了变化。我建议逐步进行(2.3 ⇒ 3.2 ⇒ 4.1 ⇒ 5.1),并在每个后续步骤中解决问题。
Rails 2.3 到 5.x 和 Ruby 1.8 到 2.x?如果项目很小,你应该考虑从头开始重建它。
除了@mudasobwa 所说的之外,首先要通过测试覆盖您当前的应用程序。一旦获得最大覆盖范围,您就可以开始更改版本。版本更改和手动干预通常会破坏事情,您有兴趣事先了解需要修复的内容。提示:使用 Simplecov gem 检查覆盖率。
【参考方案1】:
没有简单的方法。在开始升级之前,您必须添加测试以确保应用程序在升级后仍然可以工作。
然后我建议将 gem 描述更改为以下语法:
gem 'mysql', '~> 2.8.1'
它告诉 bundler 只更新 gem 的最后一个版本号。
然后重复以下步骤
将 rails 版本更改为下一个 捆绑更新轨道 手动更正了冲突的 gem 版本 捆绑更新【讨论】:
以上是关于升级 Rails 应用程序的简单方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Postmarkapp 在 Rails 应用程序中处理电子邮件异常的最佳方法是啥?