alminiumを入れたあと、Redmineを2.2にバージョンアップする
Redmineを導入するにはalminiumを利用するのがとても容易だけど、お一人で管理されてる?ためかRedmineのバージョンがなかなかあがらず、これを書いてる時点では2.2.0が出たのに、alminiumがサポートするのは2.0.3であるため、バージョンアップ作業をどうするか悩んでしまいます。
alminiumは公開された当初から利用していましたが、alminiumが新しいRedmineをサポートしてくれたときは再インストールして、そうでない場合はRedmineのソースを取得してalminiumで設定した内容をコピーする、という方法をとってきました。今回は後者について記録します。
前提
CentOS 6.2
alminiumインストール済み commit de5431ddeeecb8cfbcff2a9546ae6cf31e8b56ee
概要
Redmineの最新版を取得して、alminiumの設定をコピーする。
バージョンアップ手順
1. サービスを停止する
service httpd stop
2. 古いRedmineのバックアップをとって、新しいRedmineを取得する
Redmineのバックアップを取ります。
mv /opt/alminium /opt/alminium.base
mysqldump -ualminium -p alminium > alminium.dump
これを書いている時点ではBacklogsプラグインが2.2に対応していないため、Backlogsプラグインのアンインストールを行います。ひとまずデータベースを削除するだけです。(データベースの差し戻し)を行います。
cd /opt/alminium.base/
bundle exec rake redmine:plugins:migrate NAME=redmine_backlogs VERSION=0 RAILS_ENV=production
新しいRedmineを取得します。
cd /opt/
git clone https://github.com/redmine/redmine
ln -s redmine alminium
chown apache:apache -R redmine
chonw apache:apache -R alminium
以降、次のフォルダで作業します。
cd /opt/alminium
3. alminiumの設定をRedmineにコピーする
# スクリプトなど
cp -rp alminium.base/hooks alminium
cp -rp alminium.base/bin alminium
# 設定ファイル
cp -p alminium.base/config/configuration.yml alminium/config
cp -p alminium.base/config/database.yml alminium/config
cp -p alminium.base/config/scm.yml alminium/config
# テーマ
cp -rp alminium.base/public/themes/gitmike/ alminium/public/themes/
cp -rp alminium.base/public/themes/railsgun/ alminium/public/themes/
# プラグイン
cp -rp alminium.base/plugins/* alminium/plugins
# 一部のプラグインを削除する(rake db:migrateでエラーになる)
rm -rf alminium/plugins/redmine_redcarpet_formatter # db:migrateでエラーになる
rm -rf alminium/plugins/redmine_backlogs # rake db:migrateでエラーになる
rm -rf alminium/plugins/redmine_drafts # チケット作成画面でエラーになる
rm -rf alminium/plugins/redmine_banner # バナー設定画面でエラーになる
4. Redmineのgem管理をする
cd /opt/alminium
alminiumはproductionで動作させるだけなので、Gemfileからtest-unitに関する以下のコードをコメントアウトする。
group :test do
-- 中略 --
# It seems to need test-unit explicitely.
-- 中略 --
end
Redmine 2.2.0はrails 3.2.9を必要とするため、railsのバージョンアップを行う。alminiumはMySQLで動作するので、他のDBは除外する。
bundle install --without development test postgresql sqlite
もしこれを実行したときにエラーが出た場合は次のコマンドを実行するとうまくいく。エラーが出なかったなら実行する必要はない。
bundle update
5. 秘密鍵の生成を行う
rake generate_secret_token
6. データの移行を行う
rake db:migrate RAILS_ENV=production
rake db:migrate_plugins RAILS_ENV=production
cp -p ../alminium.base/files/* files
7. セッションをクリアする
rake tmp:cache:clear
rake tmp:sessions:clear
8. サービスを起動する
service httpd start
バージョンが2.2になって、Rails3.2.9対応になったためか、一部のプラグインが動かなくなるので、十分な検証が必要のようです。一定条件で、チケット一覧画面を開いたとき、SCMプラグインでエラーが出ました。