我正在开发一个使用Rails 1.2的Rails应用程序,因此距离最新稳定版本(Rails 2.3)已经相当长时间了。
我应该如何进行升级过程?
是逐个点版本升级还是直接升级到Rails 2.3?
我该如何查找版本之间的更改,包括:
- 提供更多升级理由的改进或新功能
- Rails更改,这将要求我在其能与新版本一起工作之前对我的应用程序进行修改。
(我已经看到了关于升级机制的这个问题,但我更感兴趣的是使升级尽可能轻松的过程。)
我正在开发一个使用Rails 1.2的Rails应用程序,因此距离最新稳定版本(Rails 2.3)已经相当长时间了。
我应该如何进行升级过程?
是逐个点版本升级还是直接升级到Rails 2.3?
我该如何查找版本之间的更改,包括:
(我已经看到了关于升级机制的这个问题,但我更感兴趣的是使升级尽可能轻松的过程。)
environment.rb
设置,以查看是否需要在新版本中使用。routes.rb
更改,因为RoR2.3.4简化了指定路由的方式。form_tag
条目;例如<%= form_tag :action => 'search' %>
变成`<% form_tag :action => 'search' do %>,否则你会得到一些有趣的错误消息<%= end_form_tag%>
更改为关闭块,如`<% end %>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服务器数据库迁移工具。
我认为有一些Rails rake任务可以查找您的应用程序中的弃用内容。
只要您的应用程序在版本控制中,我建议您一次性进行升级,并逐个处理错误消息。
此外,除了您在2.2和2.3版本中看到的发布说明页面之外,源代码本身应该还有发布说明或更改日志。此外,您可以使用搜索词“rails x.x.x新功能”等搜索博客文章(使用Google博客搜索)。
我发现这些文档缺少一些细节,从2.1 => 2.2 花费了相当长的时间。以下是我的笔记:
最耗时的问题: assert_redirected_to
已经发生了重大变化,不再支持哈希(完全不支持?)
此外,需要设置 environment/test.rb
来禁用伪造保护
如果有人对2.3的这些问题有消息,那就太棒了。
我将从回答我的问题开始,使用我通过谷歌搜索到的资源。Rails 2.2 发布说明 和 Rails 2.3 发布说明 分别详细介绍了这两个版本中新的和更改过的功能,但我在早期版本中找不到如此明确的内容。
升级时可能会出现什么问题,除了此发布公告提到的旧版Passenger无法与Rails 2.3一起使用外,我也没有找到其他太多信息。