我应该从rails 2.3升级到3+还是等到rails 4被释放然后升级?

pix*_*rth 10 ruby-on-rails upgrade ruby-on-rails-3 rails-3-upgrade ruby-on-rails-4

我即将开始将公司旧的rails ap从2.3/1.87移植到最新版本的rails.我应该等铁路4,还是我应该等到3.2?

我们将借此机会确保有完整的测试覆盖率,并且可能还会涉及一些重写.第一个目标是确保所有当前功能都可以运行.

我们希望尽可能多的当前代码库在最新版本的rails下工作.我们将重写任何没有的部分.

Mic*_*ant 18

我会考虑以下两种选择:

A)重写应用程序.
在这种情况下,我会在rails 3.2.10中进行操作.不要等到4,因为它必须被释放,动摇,发现错误等等.对于rails,它几乎永远不会等待,因为它具有如此快速的释放周期主要变化.在过去的几年里,我学到了很多东西.

B)逐步升级.
我也不会等到4,现在转到3.2.10.首先将2.3应用程序更新为rails 3.0这可能实际上并不那么难.有一些格式更改和活动记录更改,但大多数是相当直接的,并由其他人很好地记录.请仔细注意弃用警告,因为这些警告经常在rails x.0中引入,然后在x.1中实际删除(所以在这种情况下,这意味着3.0和3.1)

一旦完成并且你已经开始行动并确保一切正常,然后继续升级到rails 3.1这实际上是一个非常大的升级,因为它引入了资产管道.您需要阅读并遵循建议.不要将其用于生产,否则不要"退出".基本上它做了两件事:缩小js代码并将所有js和css代码编译成1个文件(每个).这有助于加速网页并减少对所有单个资产的服务器请求.

下一步升级ruby从1.8.7到1.9.3这应该是相对无痛的,但与所有步骤一样仔细检查应用程序,显然如果你有自动回归测试它们应该运行(这里概述的每个步骤都相同).

最后将rails从3.1升级到3.2.11,其中包括安全修复程序.


您做出的选择取决于许多其他因素,包括技术因素和非技术因素,包括:

  • 开发者带宽
  • 开发经验
  • 预算
  • 时间线
  • 代码质量
  • 代码库的大小
  • 应用程序的用户数量(从而影响任何问题).
  • 有关问题的现场调用的客户支持的可用性.

有用的资源: