我正在开发一个目前使用Rails 1.2的Rails应用程序,所以我现在已经远远落后于最新的稳定版本(Rails 2.3)。
我应该如何进入更新版本的Rails?
我应该一次升级一个版本或直接升级到Rails 2.3吗?
如何找出Rails版本之间的变化,
(我已经看到this question关于升级的机制,但是我对我应该尽可能轻松地进行升级的过程更感兴趣。)
答案 0 :(得分:4)
哦,请务必检查您使用的插件和宝石是否兼容Rails 2.x并使用最新版本。
我绝对同意一次性直接升级到Rails 2.3。不要一直把它推掉;没有升级的时间越长,就越难以改变。并且维护Rails 1.x代码更难,因为支持它的资源更少。
答案 1 :(得分:2)
我的建议是花一周的时间来偿还你积累的任何测试债务,然后一下子全部升级。
在我工作的地方,去年夏天我们将一个非常大的应用程序从1.2升级到2.0.2,同时升级到Ruby 1.8.6。
花了比预期更长的时间。该应用程序使用了一些已被删除或弃用的旧功能(如ActionWebService),因此转换这些功能需要一些时间。但主要是我们遇到了很多微妙的错误,比如单选按钮params如何工作的细微差别,其中一些可归因于Ruby(与Rails)升级。
该应用的某些部分有不稳定的测试覆盖率。如果我们通过更好的测试进入它,那一切都会容易得多。
答案 2 :(得分:2)
我刚开始将Rails 1.2.3应用程序升级到Rails 2.3.4环境。我遇到的基本步骤和警告是:
environment.rb
设置,以查看新版本中是否需要这些设置。routes.rb
更改,因为RoR2.3.4已经简化了指定路由。form_tag
条目;例如<%= form_tag :action => 'search' %>
变为`&lt;%form_tag:action =&gt; 'search'do%&gt;否则你会得到一些有趣的错误消息<%= end_form_tag%>
更改为关闭块,如“&lt;%end%&gt;”in_place_edit
时遇到了一些问题,并且对calendar
弹出窗口进行了调用。正如其他人所说,它可能需要比预期更长的时间。我已经做了大约30个小时的迁移工作。我估计它需要更长的时间;这很好;但是还有更多的工作要做PDF生成。
只是为了让应用程序在MS-Windows环境中运行更有趣; Ruby 1.8.7,Rails 1.2.3和MS SQL Server。目的是迁移到Linux环境; Ruby 1.9.x,Rails 2.3.4和MySQL数据库使得涉及MySQl服务器的数据库迁移工具。
答案 3 :(得分:1)
我认为您可以获得一些Rails rake任务,以便在您的应用中查找弃用。
只要您的应用程序处于版本控制状态,我就会一次性进行升级,并逐个查看错误消息。
此外,除了您在2.2&amp; 2.3,源本身应该有发行说明或更改日志。另外,您可以使用“rails x.x.x新功能”等搜索字词搜索博客帖子(使用谷歌博客搜索)。
答案 4 :(得分:0)
我将首先回答我自己的问题,我已经设法通过我的谷歌搜索引出了资源。 Rails 2.2 release note和Rails 2.3 release note提供了这两个版本中新功能和更改功能的详细信息,但我找不到任何早期版本的确定性。
除了提到旧版本的Passenger不能与Rails 2.3一起使用的this release announcement之外,我还没有找到更多关于升级时会破坏的内容。
答案 5 :(得分:0)
我发现那些文档缺少一些细节,并从2.1 =&gt; 2.2花了很长时间。以下是我的笔记:
最大时间汇:assert_redirected_to
发生了重大变化,不再支持哈希(根本没有?)
此外,需要设置environment/test.rb
以禁用伪造保护
如果有人在这些积分上获得2.3的消息,那就太棒了。
答案 6 :(得分:0)
此时你可能已经有了很多这方面的经验,但是我在搜索不同的Rails 1.2&gt; 2.3升级问题的过程中遇到了这个问题,并且我想自己会提出一些建议:
我在一个相对简单的应用程序中遇到的最大突破是Pagination。我发现Classic Pagination插件对此来说是天赐之物。