`

关于rails2的项目升级到rails3的问题

阅读更多
   今天在公司接到个新的需求,要求是将现有的rails2.3.8的项目升级到rails3.0.3,因为在rails这方面还是个菜鸟,觉得这个升级几乎是不可能的,因为rails3与rails2比,几乎是把代码翻了个遍的大改了一通,所以很是头疼,没办法,只能google了,果真,搜到了一个rails的插件Rails Upgrade,在网上看了下,并没有仔细的研究。
   这里有个链接,是关于怎样安装这个插件的。
http://edgeguides.rubyonrails.org/3_0_release_notes.html#upgrade-process
然后是这个插件的使用方法:
https://github.com/rails/rails_upgrade/blob/master/README
    还有javaeye的一篇文章
http://www.iteye.com/topic/626273
里面讲得还算详细,贴出来供大家参考。

   在命令行输入 rake -T rails:upgrade,这会给你列出你在使用该插件的时候可能用到的命令,并给了你简单的解释:
   rake rails:upgrade:check  在命令行运行这个命令的时候你会发现,rails会为你检查当前的rails2项目各个文件,并跟rails3进行对比,并给你列出一个列表来,告诉你,哪些文件由于哪些原因,现在已经不推荐用了。这个命令一般是在你要进行rails项目升级前,进行文件检测用的,提醒那些文件将要修改,那些文件使用了旧的api之类的。
   rake rails:upgrade:backup 在命令行输入这个命令的时候你会发现,rails会给你列出一个文件分析表,并为你把这些文件进行备份,一般是备份到当前文件相同的目录下,并以rails2为后缀,然后再由rails3的生成器(generator)来生成这些文件,来把以前的文件覆盖。This is a list of the files analyzed and backed up (if they existed);you will probably not want the generator to replace them sinceyou probably modified them (but now they're safe if you accidentally do!)
   rake rails:upgrade:configuration ,这个rake输出config/application.rb文件的内容,但是不太靠谱,基本上就是把原来environment.rb文件中,但是这个命令并不会为你把这些内容写到这个config/application.rb文件中,甚至连这个文件都不会给你创建,这个命令只会为你生成出要添加到这个文件内容,所以我们要手动的创建这个文件,并把这些内容添加到这个文档中去。注意如果你在这里有config.gem 的配置,在新的config/application.rb文件中要删除掉,会报错的。其次,仔细观察会发现,这个命令为我们你生成的application.rb文件的内容还缺少了点东西:require 'rails/all'  还有:Bundler.require(:default, Rails.env) if defined?(Bundler),所以说,这个命令还是很不靠谱的。
    rake rails:upgrade:gems ,这个命令会输出Gemfile文件的内容,但是要你手动去新建一个Gemfile文件,放在项目的要目录下。
    rake rails:upgrade:routes,输出新的routes.rb的内容,还是要手动地把这些内容复制到routes.rb中
     到此为止,这个升级插件的工作算是完成了,但是如果我们通过对升级后的项目和最初用rails3生成的项目相比,发现,升级后的项目还是缺了很多东西,例如:
  1、缺少了 config.ru文件,这个时候要从我们手动创建的rails3项目中把这个文件拷贝过来,然后在进行相应的配置。
  2、通过对比发现,在手动创建的rails3项目的config/initializers里面没有new_rails_defaults.rb这个文件,但是在升级后的项目里面是有这个文件的,所以,我们要把升级后的项目中的这个文件删除,因为你不删除的话,rails是无法启动的。
  3、.必须修改 boot.rb 文件(新建一个rails 3的项目,把新生成的复制过去,否则rake会一直报错),同样是要修改application名的,请看第1点。
  4、把升级后的项目中的scripts目录删掉,然后从新建的rails3项目中把这个文件夹拷贝过来。
  5、修改environments目录下的三个文件,这三个文件要这样修改
     Myapp::Application.configure do 
     #     # 原来的代码 
     end
     经过以上的一番折腾,升级后的项目估计就能跑起来了。
分享到:
评论

相关推荐

    重构你的Rails程式码

    1. **信任度提升:** 如果您有足够的时间去升级Rails版本,那么通常也会有足够的资源来重构代码。这不仅能够提高代码质量,还能增加团队对现有代码库的信任度。 2. **升级行为的变化:** 升级过程中可能会遇到一些新...

    Ruby on Rails Guides v2 - Ruby on Rails 4.2.5

    - **升级**:当需要更新到Rails的最新版本时,可以使用`bundle update rails`命令来更新依赖。 - **回滚**:如果更新后出现问题,可以通过`git`命令或者手动修改`Gemfile`来回滚到之前的版本。 #### 六、添加第二个...

    The Rails 3 Way, 2nd Edition

    2. **模块化**:Rails 3将核心框架进一步模块化,使得开发者可以根据项目需求选择性地加载特定组件。 3. **RESTful设计**:继续强调使用RESTful架构风格进行Web应用开发。 4. **安全性增强**:引入了一系列安全特性...

    rails 3 upgrade handbook(simple樣例)

    - **案例一**:一个小型电子商务网站从Rails 2升级到Rails 3的过程,包括遇到的主要挑战及解决方案。 - **案例二**:一款复杂的企业级应用升级经验分享,涉及技术栈迁移、性能瓶颈处理等方面。 - **案例三**:关于...

    Advanced Rails

    10. **Rails社区与工具**:熟悉Rails社区的资源,如Stack Overflow、GitHub上的开源项目,以及RailsGuides和Rails API文档,这些都能帮助开发者解决问题和提升技能。 "Advanced Rails"这本书是进一步提升Rails技能...

    rails版本区别

    综上所述,从Rails 2到Rails 3的过渡不仅仅是版本号的简单递增,而是对整个框架的一次全面升级。Rails 3在脚本命令的调用、配置文件的结构以及路由定义的语法上都做了大量的优化,旨在提供更高效、更直观的开发体验...

    rails和mysql数据库连接中出现的问题以及解决办法

    通常,较新的Rails版本支持较新的MySQL版本,但旧版本的Rails可能需要降级MySQL或升级Rails以解决问题。 总结来说,解决Rails与MySQL连接问题涉及检查配置文件、安装和更新依赖、确保系统库完整、确认服务状态和...

    Rails进行敏捷Web开发(所有版本的源码rails3.0-4.0)

    1. Rails 3.0: Rails 3是重大升级,引入了ActionController::Metal,这是一个轻量级的控制器,用于提高性能。同时,它引入了多路由引擎支持,如Rack中间件,使得与其他Web服务器的集成更加容易。此外,ActiveRecord...

    rails-4.2.0-gems

    3. 克隆或下载Rails 4.2.0项目的源代码,或者创建一个新的Rails项目,使用`rails new my_app -d sqlite3`命令,其中`my_app`是你的应用名,`-d sqlite3`指定使用SQLite数据库。 4. 进入项目目录,运行`bundle ...

    ruby on rails 开发环境包(ruby1.8.7,rails2.2.3)

    3. **创建新项目**:使用Rails命令行工具创建一个新的Rails项目。在终端中输入`rails new project_name -v=2.2.3`,其中project_name替换为你的项目名称。 4. **数据库配置**:Rails默认使用SQLite数据库,但你可以...

    ruby on rails最新版

    总的来说,这个压缩包对于Ruby on Rails的初学者或希望升级现有项目的开发者来说,是一个宝贵的资源。它提供了便捷的方式来获取和安装Rails框架,从而快速进入开发状态。不过,使用前应确保已安装好Ruby环境,并了解...

    ruby on rails 2.3.5 api html版

    Ruby on Rails 2.3.5 API HTML版是针对该版本框架的重要开发参考资料,...不过要注意,Rails框架已经发展到更高的版本,新版本可能引入了更多的改进和最佳实践,因此在实际项目中,考虑升级到最新稳定版本也是必要的。

    rails2 code

    标题 "rails2 code" 暗示我们关注的是Ruby on Rails框架的第二个主要版本,Rails 2。Rails是一个流行的开源Web应用框架,基于Ruby语言,它遵循“约定优于配置”(Convention over Configuration)的设计理念,使得...

    rails-api-4.0.0

    Rails的路由系统是连接URL到控制器动作的关键。在API模式下,通常会设置一个namespace,如/api,将所有API相关的路由包含在内。例如: ```ruby namespace :api do resources :users end ``` 这将为用户提供如/api/...

    rails2.3.2gem本地安装包及使用说明

    如果你无法通过网络升级或安装 Rails,可以采用本地安装包的方式。以下是对 Rails 2.3.2 Gem 本地安装包及其使用说明的详细解读。 1. **Rails 2.3.2 版本特性** - Rails 2.3.2 在 2009 年发布,引入了许多增强功能...

    agile web development with rails 3 edition

    - Rails核心团队持续对Rails 2进行维护和升级。新的发布可能会引入与之前版本不兼容的变化。 - 为了便于开发者实验这些变化,团队提供了Edge Rails,这是一个包含了最新开发代码的分支。 - 如果想要运行实验性的...

    Ruby on Rails 4 Tutorial 中文版

    Ruby on Rails 4 Tutorial 是一本深受开发者欢迎的书籍,它详细介绍了如何使用Ruby on Rails这一强大的Web...记得在阅读过程中,结合实际项目进行练习,将理论知识转化为实践经验,这将使你成为更出色的Rails开发者。

    Ruby On Rails教程

    对于部署到互联网服务提供商(ISP)的情况,需要考虑服务器环境的兼容性和安全性问题。 #### 四、快速上手 - **创建新应用:** 使用Rails命令行工具可以快速创建一个新的Rails应用程序。例如,`rails new myapp`命令...

    InspiniaAdmin 2.6.1 Rails_Full_Version

    在Rails_Full_Version压缩包中,包含了完整的源代码和必要的资源文件,开发者可以通过解压并导入到Rails项目中,按照官方文档进行配置和定制。同时,这个版本可能还包含了升级记录、更改日志和可能的bug修复,以保证...

Global site tag (gtag.js) - Google Analytics