dreamedge.net

mephisto 0.7.3から0.8.0への更新

2008-08-19T14:24:00+0000

mephisto0.73から0.8.0への更新作業を行った時の記録.オフィシャルにはアップグレードガイドみたいなのはないので,ここのページとかを参考に行った.

0. mephistoの最新版を取ってくる

officialにあるmasterブランチは余り良くない.
(Pluginシステムとかが変わっていて,対応してないのが多い)
ので,rel-0.8から取ってくるのが良い.

今回は2008-07-01にcommitされたtechnoweenie-mephisto-45ffeb7a56d59b8abe0bd78b53cec861423c9654.tar.gzを利用.

1. backupを取る

$ tar cvzf mephisto_backup.tar.gz my_mephisto_dir/

sqliteを使ってない場合は,dbのバックアップも別途取ること.

2. patchをつくる

いままで動かしていた0.7.3のソースを使って,アップデートパッチを作る

$ wget http://s3.amazonaws.com/mephisto-blog/mephisto-0.7.3.tar.gz
$ tar xvzf mephisto-0.7.3.tar.gz
$ tar xvzf technoweenie-mephisto-45ffeb7a56d59b8abe0bd78b53cec861423c9654.tar.gz
$ diff -Nurdp mephisto-0.7.3 technoweenie-mephisto-45ffeb7a56d59b8abe0bd78b53cec861423c9654 \
  > ~/mephisto-update.patch

3. patchを当てる

$ cd my_mephisto_dir/
$ patch -p1 < ~/mephisto-update.patch &> ~/patch.log

4. patchを当て損なったポイントを確認

environment.rb等を中心に,当て損なっている所も多いので,その一覧を取得.

$ find ./* -name *.rej
$ grep rej ~/patch.log

今回はapp/controllers/mephisto_controller.rb conf/environment.rb public/.htaccess public/install.htmlが引っかかった.

後ろ2つは問題ないので無視.mephisto_controller.rbは最新版で置き換え.environment.rbは置き換えた後に,もう一回設定をし直す.

5. gem packageのアップデート

railsを2.0.2にアップデートする.tzinfoもアップデートorインストールすること.

$ gem install rails -v=2.0.2
$ gem install tzinfo

0.7.3時代の遺産としてvendor/tzinfo-0.3.2/とかが残っている場合は消去しておくこと.そうしないとTZInfo周りのエラーが出てadmin画面を開けなくなります.

6. Databaseのアップデート

$ cd ~/myblog
$ RAILS_ENV=production rake db:migrate

7. 動作確認

$ script/server -e production

これで無事動けばOK.実際には結構いろいろとトラブル(iconvでascii//translit//ignoreが変換できないとか)があったけど,環境依存な部分もあるのでそこら辺は別記事で.