[英]Upgrading from Rails 2.3 to Rails 4.0
我们有一个应用程序,目前在Rails版本2.3.12和Ruby版本1.8.7上。 我们想要将我们的应用程序更新到Rails 4.0和Ruby 2.1.0。 我们有大约200个型号和150个控制器。
我想知道进行升级过程有多大的努力。 您还可以提供升级后可以遵循的步骤。 我们应该首先升级Ruby然后再升级Rails,反之亦然?
你想要实现的将是一个史诗般的努力。 我无法为您提供分步说明,因为无法在一个答案中涵盖所有案例。
我建议不要同时升级Ruby和Rails,只需要很小的步骤。
升级本身的复杂性是巨大的,但只要您对应用程序有合理的测试覆盖率,这并非不可能。 我真的希望你有考试。 如果不这样做,那么您甚至无法考虑开始这样的升级,首先需要确保产品的最小覆盖率。
我的建议是遵循这个路线图
几点说明
Ruby 1.9处理编码与Ruby 1.8不同。 Rails 2.3没有为此做好充分准备。 这些问题通常会导致硬错误,并且可能发生在意外的地方(例如,当您想要显示错误消息时)
本博客文章中提供了一个好的(或可怕的)概述: http : //www.rvdh.de/2010/01/06/why-you-cant-run-rails-23-apps-on-ruby-19/
我也失去了很多时间试图将Rails 2.3.x与Ruby 1.9.x配合使用(如果你总是使用普通的ascii,也许有可能)
因此,首先需要更新到Rails 3.0,然后再更新到Ruby 1.9.3(或同时更新两者)
资产管道在工作时很好,但升级很困难。 所以我会禁用它,直到你使用Rails 4.0。
视图有很多变化,比如form_for helper。 当您拥有至少渲染一次每个视图的测试时,这是很好的。 然后,您将获得已更改的事项的弃用警告。 如果这不现实,那么您应该尝试手动测试应用程序的所有内容,并在grep日志文件中查看弃用警告。 Rails 3.0中的许多弃用将导致Rails 3.1中的错误或错误行为。
将ruby和rails版本更新为new并不需要花费太多时间,但在代码中你必须更改所有quires和模型范围以及在新ruby和rails版本中弃用的新rails版本中不起作用的任何内容。并且还有一件事可能是许多支持ruby 1.8.7的宝石不会支持新的ruby版本和轨道相同的东西。 我的建议只是,你首先检查你的应用程序与新版本的依赖关系并做出决定。我对它有所了解,因为我还从ruby 1.8.7升级了一个完整的应用程序,rails 2.3.5到ruby 1.9.3和轨道3.2.13。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.