2017-09-05 112 views
-1

我正在研究一个非常古老的铁轨项目。该的Gemfile是这样的:升级rails应用程序的简单方法是什么?

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' 

红宝石版本是1.8.7

有什么简单的方法来升级这个Rails应用程序?我可以将每个宝石的版本更改为最新版本,并期望它能正常工作吗?

+11

不,你显然不能。更重要的是,预计几乎所有的东西都需要人工干预,因为自'2.3.17'以来许多接口都发生了变化。我建议逐步进行(2.3⇒3.2⇒4.1⇒5.1),并解决后续步骤中的问题。 – mudasobwa

+2

Rails 2.3到5.x和Ruby 1.8到2.x?如果项目很小,则应考虑从头开始重建。 – Stefan

+0

除了@mudasobwa所说的之外,首先用测试覆盖当前的应用程序。一旦你有最大的覆盖范围,你可以开始改变版本。版本变更和手动干预通常会破坏事情,事先知道需要解决的问题是您的兴趣所在。提示:使用Simplecov gem来检查覆盖范围。 – rodsoars

回答

0

有没有简单的方法。在开始升级之前,您必须添加测试以确保应用程序在升级后仍能正常工作。 然后我建议将宝石描述更改为以下语法: gem 'mysql', '~> 2.8.1'它告诉打包程序只更新最新版本的gem。

然后重复接下来的步骤

  • 变更轨道版本下一
  • 包更新轨道
  • 纠正冲突宝石版本用手
  • 包更新
相关问题