一人で使ってるscaffoldに毛が生えたようなRails 2.3.5のアプリをRails 3.0にアップグレードするまでのメモです。あんまり情報もないので手探りでやってみて、その後に「こうやるといいのかなー」というのをまとめました。もっといい方法あったら教えてください。
Rails 3.0は既にインストール済みのものとして話を進めてます。
rails_upgradeのインストール
Rails 3 へのアップグレードを補助するプラグイン rails_upgrade をインストール
script/plugin install git://github.com/rails/rails_upgrade.git
バックアップ
rake rails:upgrade:backup
で主要なファイルをバックアップ
Gemfileの作成
rake rails:upgrade:gems
の出力結果をGemfileに貼り付け。さらに
# beta版のrails3.0を使うのでコメントアウト # path "/path/to/rails", :glob => "{*/,}*.gemspec" gem "rails", "3.0.0.beta" gem "mysql" gem "rspec", ">= 2.0.0.beta.1", :group => :test gem "rspec-rails", ">= 2.0.0.beta.1", :group => :test
のように書き換え(適宜自分の環境に合うように書き換えてください)。
routes.rbの書き換え
rake rails:upgrade:routes
の出力結果をconfig/routes.rbにコピペ
config/application.rbの作成
rake rails:upgrade:configuration
の出力結果をconfig/application.rbへ
少しずつRails2依存コードを減らす
rake rails:upgrede:check
を実行→該当部分の修正をして出力結果を一個ずつ減らしていく。
その他Rails3で必要なファイルを作成
Rails.rootから一つ上のディレクトリにて
rails プロジェクト名
のようにしてRails3で必要になるファイルを生成。この際に上書きしても良さそうなファイルは上書きする。
サーバ起動後
一通り操作を試してみて動かない部分を調べる。
例えばlink_to_remoteは動かないので
- jquery-ujsをインストール
- link_to_remoteをlink_toに書き換えて:remote => trueを付ける
などとする。
簡単にまとめると
という感じでしょうか。もっとスマートにアップグレードできたらいいんですけどねー