読者です 読者をやめる 読者になる 読者になる

パンダのメモ帳

技術系のネタをゆるゆると

Redmine 0.9.1 → 1.0.1 アップグレード

Redmine (redmine.org, 日本語サイト)のバージョンアップ作業記録。基本的には日本語サイトのガイドを読めばOKなんだけど、ちょっとだけ躓いたのでメモ。

1. 前提

  • 旧バージョンの Redminesvn でなくアーカイブからインストールしていること。
  • バックエンドデータベースに MySQL を利用していること。

2. Redmine 最新版の入手

作業用ディレクトリを作成し、RubyForge から最新版(今回は 1.0.1)のアーカイブをダウンロード・解凍する。

[hoge@localhost ~]$ mkdir work.redmine
[hoge@localhost ~]$ cd work
[hoge@localhost work]$ wget http://rubyforge.org/frs/download.php/72201/redmine-1.0.1.tar.gz
[hoge@localhost work]$ tar xvf redmine-1.0.1.tar.gz

3. データベースのバックアップと更新

マイグレーションによってデータベースが更新されるので、念のためバックアップをとっておく。

[hoge@localhost work]$ mysqldump -R -p -u MySQLユーザー名 データベース名 > backup.sql

4. 設定ファイルのコピー

旧バージョンから設定ファイルをコピーする。

[hoge@localhost work]$ cd redmine-1.0.1
[hoge@localhost redmine-1.0.1]$ cp /path/to/email.yml config/email.yml
[hoge@localhost redmine-1.0.1]$ cp /path/to/database.yml config/database.yml

5. environment.rb の編集

アップデート手順にこれがなくてハマった。初回インストール時にやった記憶がある environment.rb の編集をここでもやっておかないと、この後のマイグレーション処理がこける。具体的には20行目辺りの

Rails::Initializer.run do |config|

となっている下辺りに以下のような行を追加する。

config.action_controller.session = { :key => "_myapp_session", :secret => "54553b72c62e9866f3fc58d8b545a4f2" }

:secret の値は環境ごとに異なると思うので、旧バージョンの同ファイルからコピーすればOK。

6. マイグレーションの実行

次の通り実行する。

[hoge@localhost redmine-1.0.1]$ rake db:migrate RAILS_ENV="production"

7. アップロードされたファイルのコピー

旧バージョンのディレクトリから新バージョンのディレクトリへ、アップロードされているファイルをコピーする。

[hoge@localhost redmine-1.0.1]$ cp /path/to/files/* files/

8. 設置

旧バージョンのディレクトリを適当な名前にリネームし、新しいバージョンのファイル一式を元のディレクトリに移動させる。

[hoge@localhost redmine-1.0.1]$ cd
[hoge@localhost ~]$ mv /path/to/redmine /path/to/redmine.bak
[hoge@localhost ~]$ mv work/redmine-1.0.1 /path/to/redmine

9. 再起動

アプリケーションの再起動を行う。ウチの環境では mod_passenger を使って Apache 上で動作させているため、httpd サービスの再起動を行った。

[hoge@localhost ~]$ sudo service httpd restart

最後に動作を確認して完了。「ロールと権限」を確認し、新しい権限が増えている場合は適切に設定すること。