redmineを1.0.0にアップデートしてみた

redmineの1.0.0がめでたくリリースされました。ぱちぱちぱち。

そんなわけでさっそくredmineをアップデートしてみました。
私がいれていたredmineは0.9.4だったので、まあそんなに大変ではないだろう、と思っていたら、ほんとに簡単でした。

バックアップをとる

DBにはPostgreSQLを使っているので、pg_dumpを使います。

$ pg_dump redmine > redmine20100723.dump

他のDBも似たような感じかと。細かい設定等は各自で工夫してください。

ソースを取得する

SCMから取ってくるか、tarballを取ってくるか、どちらでもいいのですが、今回はtarballを取ってきました。

$ wget http://rubyforge.org/frs/download.php/71723/redmine-1.0.0.tar.gz

これを展開して、しかるべき場所にコピーします。

$ tar xvfz redmine-1.0.0.tar.gz

以前の設定を反映させる

ところでディレクトリ構成ですが、私のサイトの場合、以下のようなディレクトリ構造になっていました。

(使用前)
+- (apacheのコンテンツ用ディレクトリ)
    +- redmine (redmine-0.9.4へのシンボリックリンク)
    +- redmine-0.9.4

そこに新しく、1.0.0のソースを置いて、さらにredmineシンボリックリンクredmine-1.0.0に貼り直す、という感じです。

(使用後)
+- (apacheのコンテンツ用ディレクトリ)
    +- redmine (redmine-1.0.0へのシンボリックリンク)
    +- redmine-0.9.4
    +- redmine-1.0.0

では作業の続き。0.9.4の設定を1.0.0にコピーします。

$ cp redmine-0.9.4/config/database.yml redmine-1.0.0/config/
$ cp redmine-0.9.4/config/email.yml redmine-1.0.0/config/

本当はredmine-0.9.4/files の下もコピーするのですが、まだ使っていなかったのでそのまま放置。

# $ cp -rp redmine-0.9.4/files redmine-1.0.0/

プラグインも移行します。私の場合、redmine_gitosisを使っていたのでそれをコピー。

$ cp -rp redmine-0.9.4/vendor/plugins/redmine_gitosis redmine-1.0.0/vendor/plugins/

続いて1.0.0用の設定を更新します。まずはセッション周り。

$ cd redmine-1.0.0
$ rake generate_session_store

これを実行すると、config/initializers/session_store.rbというファイルができます。念のため確認してもいいでしょう。

$ more config/initializers/session_store.rb

さらにキャッシュやセッションをいったん削除します。

$ rake tmp:cache:clear
$ rake tmp:sessions:clear

前準備はこんな感じです。

再起動

いよいよ入れ替えます。
まず、前述のシンボリックリンクを変更します。

$ cd ..
$ sudo rm redmine
$ sudo ln -s redmine-1.0.0 redmine

そしてサービスを再起動します。念のため、apacheごと再起動してみました。

$ sudo /etc/rc3.d/S91apache2 restart

あとは動くかどうか試してみます。もし万が一動かない場合はシンボリックリンクを貼り替えて、DBのバックアップを戻せばもどるかもしれません(戻らないかもしれません……)。

私の場合は一発で移行できたようです。よかったよかった。