项目升级rails 2 -〉 rails 3

1: 升级rubygems为1.3.7

sudo gem update --system 

2:安装rails 3.0依赖的包
   1)

sudo gem install tzinfo builder i18n memcache-client rack rake rack-test erubis mail text-format thor bundler 

   2)

sudo gem install rack-mount 

3:安装rails 3.0

gem install rails --pre -v=3.0.0.beta3 

4:升级项目

   1》  安装官方的升级插件(如果没有安装git,先安装git)

    1》》  进入项目下,

script/plugin install git://github.com/rails/rails_upgrade.git 

     2》》  新建rails3的项目app

rails app

     3》》  进入old项目下

        1)进入old目下,

rake rails:upgrade:backup 

           这个rake会备份一些要修改的文件,备份文件以rails2结尾.

        2)复制app项目config/application.rb文件到项目的config下

            执行

rake rails:upgrade:configuration

                将从module开始及其以后的内容都复制到application.rb中覆盖module 的内容,
                注意如果你在这里有config.gem 的配置,在新的config/application.rb文件中要删除掉,会报错的

        3)复制app项目根目录下的Gemfile文件到old项目。
              执行

rake rails:upgrade:gems 

                 生成的内容复制到Gemfile下

        4)进入old项目下,执行

rake rails:upgrade:routes 

                生成的内容复制到routes.rb中
        5)复制app项目下的config.ru文件到old项目下
            修改config.ru文件中的run **::Application的**(**是项目名称)改为现在的项目名称(Old,首字母大写)

        6)复制app项目config下environment.rb文件到old项目下
            修改environment.rb文件中的run **::Application.initialize!(**是项目名称)改为现在的项目名称(Old,首字母大写)

        7)  删掉old项目的config/initializers下的new_rails_defaults.rb文件

        8)  复制app项目config下的boot.rb文件到old项目下对应的位置

        9)  复制app项目下的script目录中的rails文件复制到old项目下的script目录中

        10)  修改old项目中config/environments目录下的三个文件(development.rb、test.rb、production.rb),这三个文件要这样修改

Old(项目名称)::Application.configure do

# 原来的代码

end 

 

        11) rails server   启动服务器

            如果没有用插件(或者使用的插件已经支持Rails 3.0 beta了),估计就可以初步地启动服务器了,
            此时启动项目时,会提示问题,如果使用了gem包,很有可能会出现问题,此时需要依照各自的问题来解决。
            现在我查找ihaveu项目中的不用的或不支持rails 3的gem包。

 

        12) 注释不兼容Rails 3.0 beta的gem包
            进入ihaveu项目中,打开根目录Gemfile文件,注释掉以下gem:

                # gem 'rails', '2.3.4'
                # gem 'thoughtbot-paperclip', '~> 2.3.0', :require => 'paperclip'
                # gem 'rspec-rails', :require => 'spec/rails'
                # gem 'thinking-sphinx', :require => 'thinking_sphinx'
                source 'http://gemcutter.org'
                # gem 'ts-datetime-delta', '>= 1.0.0', :require => 'thinking_sphinx/deltas/datetime_delta' 

 
            以下是可以替换的包:

                gem install rspec --prerelease
                gem install rspec-rails --pre
                gem install thinking-sphinx --pre 

 

            注意:其实nkallen-cache-money包也是不兼容Rails 3.0 beta,但是这个可以修改,修改后就可以用了,修改方法如下:
            找到已安装好的nkallen-cache-money包

            1》打开/lib/下的cache_money.rb,
                将

require 'activesupport'、require 'activerecord'

                 修改为

require 'active_support'、require 'active_record'

                 (因为rails3 中只有require 'active_support'、require 'active_record'

                           没有require 'activesupport'、require 'activerecord')


            2》打开/lib/cash下的mock.rb,将< HashWithIndifferentAccess删掉

 

        13)修改内容

            1》把ihaveu项目中config下的environment.rb.rails2中

module Kernel
  def is_sphinx_enabled?
    false#RUBY_PLATFORM !~ /mingw|mswin|java/ && File.exist?(%x(which mmseg)[0..-2]) # && RAILS_ENV == "production"
  end
end

 

               复制到ihaveu项目中config/application.rb中的module 项目名称 上边。

             2》ihaveu项目/config/initializers/error_table.rb中注释以下行:
            4、17、62、63、66、69、70、72、79、80、81、83、84、86、87、88、145、146、147、148、149、150、151、152、169、176

             3》ihaveu项目/config/initializers/new_rails_defaults.rb中注释第14行

             4》ihaveu项目/config/initializers/session_store.rb中注释第16、22行

             5》
                    1》》ihaveu项目/config/routes.rb中修改以下内容:

match '/signup/:invitation_id/:invitation_code' => 'home/accounts#new', :as => :signup, :invitation_id => , :invitation_code =>

                 改为

match '/signup/:invitation_id/:invitation_code' => 'home/accounts#new', :as => :signup, :invitation_id => "", :invitation_code => "" 

 

                2》》 把所有的get_post :***,改为get :***和 post :***。 ???

            3》》修改路由代码,为resources指定:controller选项
                例如

                    resources :friends do
                      ......
                    end 

                     改为

                    resources :friends, :controller => 'home/friends' do
                      ......
                    end 

 


        14)升级项目完成,启动项目rails server

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值