環境
- Debian GNU/Linux testing
準備
まずは、パッケージをまとめて最新状態にする。
% sudo aptitude update % sudo aptitude safe-upgrade % ruby -v ruby 1.8.7 (2011-02-18 patchlevel 334) [i486-linux]
Ruby gemのアップグレード
% sudo gem1.8 update --system % gem1.8 -v 1.6.2
Ruby on Railsのアップグレード
% sudo gem1.8 update rails % rails -v Rails 3.0.5
bundlerが自動でアップデートされないので個別にアップデート。
% sudo gem1.8 update bundler
公開環境のpassengerアップグレード
passengerをアップデート。
% sudo aptitude install libcurl4-openssl-dev % sudo gem1.8 update passenger Phusion Passenger version 3.0.5 "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
モジュール生成
% sudo passenger-install-apache2-module
バージョン情報を整える。/etc/apache2/mods-available/passenger.loadのpassengeのバージョン番号を修正。
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.5/ext/apache2/mod_passenger.so
/etc/apache2/mods-available/passenger.confの中身のバージョン番号を修正。
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.5 PassengerRuby /usr/bin/ruby1.8
apacheを再起動する。
% sudo /etc/init.d/apache2 restart
gemモジュールのアップデート
% sudo gem1.8 update devise % sudo gem1.8 update pg
既存のプロジェクトのアップデート
% cd app_30 % rake rails:update
以下のファイルが書き換えられるので注意。
- config/boot.rb
- config/routes.rb
- config/application.rb
- config/environments/development.rb
- config/environments/production.rb
- config/environments/test.rb
- config/initializers/secret_token.rb
- config/initializers/session_store.rb
- config/locales/en.yml
% bundle install --local --without=production (開発環境) % bundle install --local --without=development (公開環境)
devise 1.1.6 から 1.2.1へ
何もかえないで動かすと以下のメッセージがログに表示される。
To update your app, please: 1) Remove config.encryptor from your initializer; 2) Add t.encryptable to your old migrations; 3) [Optional] Remove password_salt in a new recent migration. Bcrypt does not require it anymore.
なので、db/migrate/xxxx_devise_create_users.rb に t.encryptable を追加する。その後、config/initializers/devise.rbとconfig/locales/devise.en.ymlの複製をとり、config/initializers/devise.rbの更新を行う。
% cp -p config/initializers/devise.rb config/initializers/devise.rb.org % cp -p config/locales/devise.en.yml config/locales/devise.en.yml.org % rails generate devise:install
一応、db/schema.rbのコピーをとってから、データベースの再構成をする。
% cp -p db/schema.rb db/schema.rb.org % rake db:migrate:reset % diff db/schema.rb.org db/schema.rb 137d136 < t.string "password_salt", :default => "", :null => false 139d137 < t.string "remember_token" 151a150 > t.string "password_salt"
remember_tokenが無くなった様子。password_saltの設定が変わったみたい。