我正在开发 Rails 1.2.3 版本。现在我想将 Rails 版本和 ruy 版本从 1.8.6 升级到 1.9.7。
使用这样的旧版本是否很痛苦,但它处于运行状态。现在我想要 Rails 的高级功能,但不支持这个旧版本。
请建议我升级版本和ruby版本的方法。
谢谢....
我正在开发 Rails 1.2.3 版本。现在我想将 Rails 版本和 ruy 版本从 1.8.6 升级到 1.9.7。
使用这样的旧版本是否很痛苦,但它处于运行状态。现在我想要 Rails 的高级功能,但不支持这个旧版本。
请建议我升级版本和ruby版本的方法。
谢谢....
这是一个相当大的飞跃。您最好的选择是创建一个新的 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
)。还要确保为您使用的数据库类型( 、 或 )安装了正确mysql2
的sqlite3
gem pg
。
添加所需的所有 gem 后,运行bundle install
以将所有 gem 与您的应用程序捆绑在一起。
至于视图、模型和控制器,这些东西应该都可以复制到新应用程序中。您可能需要调整一些东西,但在大多数情况下,这些东西应该都可以工作。
您还需要打开config/application.rb
并配置您的应用程序。您可以使用旧environment.rb
文件作为参考。
启动应用程序之前的最后一步是将routes.rb
文件更改为新的 Rails 3 格式。这可能是迁移过程中最糟糕的部分,因为您首先需要学习如何编写 Rails 3 路由文件,然后手动写入路由。更多信息可以在这里找到。
我从未使用过 Rails 1,因此您可能需要更改其他一些内容。这三个 Railscasts对你来说绝对是一个有用的资源。
我已经将一个主要应用程序从 2.3.10 迁移到 3.0.9,这是一个非常痛苦的过程,如果我想迁移到 3.1,情况会更糟。
根据您的应用程序大小,我肯定会建议创建一个新应用程序并复制这些内容。
从这个旧版本的 rails 迁移到最新版本绝对不是一次飞跃,有很多不同的事情需要考虑。
但是,关于我的回答最好的一点是,我确实建议您这样做,测试、寻找兼容宝石等的过程......在 rails 3 和 ruby 1.9.2 中要好得多
哇,正如砖家所说,这是一个飞跃!我在几年前使用过 Rails 1.. 我没有升级到 Rails 2,我重新编写了。
您的 Rails 1.2.3 应用程序有多大?
很多东西都发生了变化,Rails 中的特性、Gems、路由、资产管道、命名范围、ActiveRecord 查询 API ……甚至 Ruby 都发生了变化——仅仅升级是个坏主意。有许多新的概念和功能,您将不得不考虑,并且从头开始会更好。
这可能是因祸得福。我认为这是一个很好的机会,可以通过在 Rails 3.1 中重写和重新构建代码库来改进代码库 :-)
我建议从头开始使用具有最关键特性的 Rails 3.1 应用程序,同时保持 1.2.3 应用程序处于维护模式。
这可能也是摆脱应用程序中一些几乎从未使用过的“功能”的好机会……