22

我在 Rails 2.3.8 上运行一个应用程序。我计划将它升级到 Rails 4.0(在 RC 中)。对我来说,最简单的方法是什么?我需要先升级到 Rails 3.x 吗?

注意:在我当前的实现中,我使用的是八哥和雪貂;作为升级的一部分,我也在考虑搬到sidekiqsunspot

4

2 回答 2

51

这是一个多步骤的过程,根据应用程序的大小,可能需要很长时间。在每个步骤中,您都需要测试您的应用程序是否存在错误和问题以及损坏的 gem(因为它们肯定会出现)。我已经包含了最复杂步骤的链接。这是痛苦最小的路径:

更新到 Rails 2.3.18。

更新到 Ruby 1.9.3。

更新到 Rails 3.0。

更新到 Rails 3.1。

更新到 Rails 3.2.latest。

更新到 Ruby 2.0.latest。

更新到 Rails 4.0

从 Rails 4.0 更新到 Rails 4.1

从 Rails 4.1 更新到 Rails 4.2

从 Rails 4.2 更新到 Rails 5.0

从 Rails 5.0 更新到 Rails 5.1

奖励:如果您有一个大型应用程序,这将需要很长时间。如果你有一个大团队,长期运行的分支会因为反复出现的合并冲突而变得非常头疼。缓解这种情况的一种策略是使用两个版本的 Rails 双重引导您的应用程序,这样您就可以让新版本在您的主分支上运行,而不是在它自己的长期运行的分支上运行。

于 2013-07-14T16:47:26.143 回答
2

Aaron Gray 的回答非常有用,但有时升级后很难在代码中找到 rails 版本之间的差异。我的意思是,升级后很多次都不起作用。也许可能是文件中的某些更改,或者某些文件可能会在较新版本中添加或删除。有一个不错的工具,您可以如何找出版本之间的所有差异并进行比较。它在Rails 上的差异,对于发现一些潜在的错误和错误非常有帮助。

于 2014-10-22T09:23:22.567 回答