5

我正在开发 Rails 1.2.3 版本。现在我想将 Rails 版本和 ruy 版本从 1.8.6 升级到 1.9.7。

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

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

谢谢....

4

3 回答 3

4

这是一个相当大的飞跃。您最好的选择是创建一个新的 rails 3.1 应用程序,然后手动迁移您的代码。

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

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

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

至于视图、模型和控制器,这些东西应该都可以复制到新应用程序中。您可能需要调整一些东西,但在大多数情况下,这些东西应该都可以工作。

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

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

我从未使用过 Rails 1,因此您可能需要更改其他一些内容。这三个 Railscasts对你来说绝对是一个有用的资源。

于 2011-10-13T07:31:18.997 回答
0

我已经将一个主要应用程序从 2.3.10 迁移到 3.0.9,这是一个非常痛苦的过程,如果我想迁移到 3.1,情况会更糟。

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

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

但是,关于我的回答最好的一点是,我确实建议您这样做,测试、寻找兼容宝石等的过程......在 rails 3 和 ruby​​ 1.9.2 中要好得多

于 2011-10-13T07:44:05.137 回答
0

哇,正如砖家所说,这是一个飞跃!我在几年前使用过 Rails 1.. 我没有升级到 Rails 2,我重新编写了。

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

很多东西都发生了变化,Rails 中的特性、Gems、路由、资产管道、命名范围、ActiveRecord 查询 API ……甚至 Ruby 都发生了变化——仅仅升级是个坏主意。有许多新的概念和功能,您将不得不考虑,并且从头开始会更好。

这可能是因祸得福。我认为这是一个很好的机会,可以通过在 Rails 3.1 中重写和重新构建代码库来改进代码库 :-)

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

这可能也是摆脱应用程序中一些几乎从未使用过的“功能”的好机会……

于 2011-10-13T08:16:50.737 回答