升级Rails应用程序从1.2.3升级到3.1.0?

时间:2011-10-13 07:18:11

标签: ruby-on-rails-3 rails-3-upgrade

我正在研究Rails 1.2.3版本。现在我想将Rails版本以及ruy版本从1.8.6升级到1.9.7。

使用这样的旧版本是否是一个主要的痛苦,但它处于运行状态。现在我想要Rails的高级功能但不支持这个旧版本。

请建议我升级版本和ruby版本的方法。

...谢谢

3 个答案:

答案 0 :(得分:4)

这是一个很大的飞跃。最好的办法是创建一个新的rails 3.1应用程序,然后手动迁移代码。

gem install rails #=> will install the latest stable release from rubygems
gem install bundler
rails new myapp

您需要做的第一件事是打开Gemfile并添加您当前应用程序中使用的任何宝石,并且找到任何插件的宝石版本也是一个好主意你正在使用(在vendor/plugins中)。还要确保为您正在使用的数据库类型安装了正确的gem(mysql2sqlite3pg)。

在您添加了所需的所有宝石后,运行bundle install将所有宝石与您的应用程序捆绑在一起。

就视图,模型和控制器而言,只需复制到新应用程序即可。您可能需要调整一些内容,但大多数情况下这些内容都应该有效。

您还需要打开config/application.rb并配置您的应用程序。您可以使用旧的environment.rb文件作为参考。

启动应用程序之前的最后一步是将routes.rb文件更改为新的Rails 3格式。这可能是迁移中最糟糕的部分,因为您首先需要学习如何编写Rails 3路由文件,然后手动写入路由。可以找到更多信息here

我从未使用过Rails 1,因此您可能需要更改其他一些内容。 These three Railscasts肯定会为您提供有用的资源。

答案 1 :(得分:0)

我已将主要应用程序从2.3.10迁移到3.0.9 这是一个非常痛苦的过程,如果我想转向3.1,那就更糟了。

根据您的应用程序大小,我肯定会建议创建一个新的应用程序并复制这些内容。

从这个旧版本的rails迁移到最新版本绝对不是一蹴而就的,需要考虑很多不同的事情。

但是,关于我的答案最好的事情是我建议你这样做,测试过程,找到兼容的宝石等......在rails 3和ruby 1.9.2中更好用

答案 2 :(得分:0)

哇,正如砖块所说,这是一个很大的飞跃!我在很久以前使用过Rails 1.我没有升级到Rails 2,我重写了。

您的Rails 1.2.3应用程序有多大?

许多事情都发生了变化,Rails中的功能,如此多的Gems,Routing,Asset Pipeline,Named Scopes,ActiveRecord Query API,甚至Ruby已经改变了 - 只是升级是个坏主意。有许多新的概念和功能,你必须要考虑,从一个干净的平板开始会好得多。

这可能是一种伪装的祝福。我认为这是一个很好的机会,通过在Rails 3.1中重新编写和重新构建它来改进代码库: - )

我建议在具有最关键功能的Rails 3.1应用程序上从头开始,同时保持1.2.3应用程序处于维护模式。

这可能也是一个很好的机会摆脱你的应用程序的一些“功能”,几乎没有使用过......