アップグレード
Step 1 – 必要な環境の確認
Redmineのアップグレードを行う場合は、 Redmineのインストール を参照して、インストールしようとしているバージョンが要求する環境を満たしていることを確認してください。
Step 2 – バックアップ
データベースおよびアップロードしたファイルのバックアップを取得することが推奨されます。多くの場合アップグレードは安全に行えますが、万一の時に備えてバックアップをとっておくのが安全です。
filesディレクトリのバックアップ
Redmineにアップロードしたファイルはすべて files/ ディレクトリに保存されています。このディレクトリの内容を他の場所にコピーすることでバックアップとすることができます。
MySQLデータベース
mysqldump コマンドでMySQLデータベースの内容をテキストファイルにバックアップすることができます。
例:
/usr/bin/mysqldump -u <username> -p<password> <redmine_database> | gzip > /path/to/backup/db/redmine_`date +%y_%m_%d`.gz
SQLiteデータベース
SQLiteのデータベースは単一のファイルに全ての内容が格納されているので、そのファイルを別の場所にコピーすることでバックアップとすることができます。
PostgreSQL
pg_dump コマンドでPostgreSQLデータベースの内容をテキストファイルにバックアップすることができます。
例:
/usr/bin/pg_dump -U <username> -Fc --file=redmine.sqlc <redmine_database>
PostgreSQLのバックアップについての解説は次のページでも確認できます: http://www.commandprompt.com/blogs/joshua_drake/2010/07/a_better_backup_with_postgresql_using_pg_dump/
Step 3 – アップグレードの実行
これより実際にアップグレードを実施します。アップグレード手順はRedmineをどのようにダウンロードしたかによって異なります。次に述べる手順のうち いずれか一つだけ を実行してください。
Option 1 – リリースバージョン(tar.gz または zipファイル)をダウンロードした場合
1. 新しいRedmineのtarballを新しいディレクトリに展開してください。
2. データベース設定ファイル config/database.yml を新しい config ディレクトリにコピーしてください。Redmine 1.4以上をMySQLとRuby 1.9で利用する場合、データベースアダプタの名称を mysql2 に変更してください。
3a. 設定ファイル config/configuration.yml を新しい config ディレクトリにコピーしてください。
3b. もしくは、 1.2.0より前のバージョンからアップグレードする場合、 config/email.yml を参照して config/configuration.yml にメールの設定を移行してください。このファイルは configuration.yml.example をコピーして作成できます。
4. files ディレクトリを新しいRedmineのディレクトリにコピーしてください。
5. 独自に追加したプラグインを新しいRedmineのディレクトリにコピーしてください。Redmineに標準添付されていないプラグインのみをコピーするよう注意してください。
6. Redmineのインストールディレクトリで以下のコマンドを実行してください。
rake generate_session_store
この操作では、セッションデータを安全に扱うための秘密鍵が含まれる config/initializers/session_store.rb ファイルを生成します。
※訳注: Redmine 2.0では rake generate_secret_token を実行してください。
7. public/themes ディレクトリにインストールしたテーマの確認を行ってください。新しいRedmineにそれらをコピーしてもよいですが、可能であれば新しいバージョンのテーマがリリースされていないか確認してください。
重要: config/settings.yml を古いもので上書きしないでください。
SVNチェックアウトのアップグレード
1. Redmineのインストールディレクトリに移動して、以下のコマンドを実行してください:
svn update
2. もしRedmine 0.8.7より古いバージョンもしくはtrunk(開発版)のr2493より古いバージョンからアップグレードする場合、cookie store用の秘密鍵を生成しなければなりません。後述のsession_store生成の説明をご覧ください。
Step 4 – データベースの更新
この手順ではデータベースの内容を更新します。新しいRedmineのインストールディレクトリに移動し、データベースのマイグレーションを行ってください。
rake db:migrate RAILS_ENV="production"
なにかプラグインをインストールしている場合、プラグインについてもデータベースのマイグレーションを行う必要があります。
rake db:migrate:upgrade_plugin_migrations RAILS_ENV=production
rake db:migrate_plugins RAILS_ENV=production
Step 5 – クリーンナップ
1. キャッシュとセッションファイルのクリアを行ってください。
rake tmp:cache:clear rake tmp:sessions:clear
2. アプリケーションサーバを再起動してください (e.g. mongrel, thin, passenger)
3. 最後に、 “管理 → ロールと権限” 画面で新たに追加された機能に対する権限の確認・設定を行ってください。
よくある問題
Errors with repository management
There were several new features added to the reposman.rb file, make sure you have a group specified if you’re having issues ( —group=groupnamehere). Also, make sure you follow the instructions [[Repositories_access_control_with_apache_mod_dav_svn_and_mod_perl|here]] again if you only copied your Redmine.pm, and update your Apache configuration as the recommended configuration has changed.
session_store.rbの生成
cookieベースのセッションを利用するために、固有の session_store.rb ファイルを生成する必要があります。この操作はRedmine 0.8.7以降で必要です。以下のコマンドを実行してください。
rake config/initializers/session_store.rb
注意: Redmineには config/initializers/session_store.rb ファイルは含まれていません。このファイルは上記のコマンドを実行することにより生成されます。上記コマンドが実行できない場合、Ruby 1.8.7およびRails 2.3.5を実行していることを確認してください(後述の「Railsバージョンに起因するエラー」を参照してください).
※訳注: Redmine 2.0では rake generate_secret_token を実行してください。
session_store.rbが存在しないことに起因するエラー
session_store.rb ファイルが存在しない旨のエラーが発生した場合、前述のコマンドを実行してファイルを生成してください。
Railsバージョンに起因するエラー
新しいRedmineに適合したバージョンのRuby on Railsをインストールしてください (1.2.x は Rails 2.3.11, 1.3.x は 2.3.14 を使用します)。
次のように、Ruby on Railsのアップグレードが必要かもしれません:
gem install rails -v=2.3.14
Error about member_roles
If you have had a failed upgrade/migration in the past then you may have a member_roles and/or group_users table already created. The db migration noted above will fail. Simply rename the tables by logging into MySQL command line and executing the rename table command:
mysql> rename table member_roles to member_roles_saved mysql> rename table groups_users to groups_users_saved
Error about “undefined method `add_frozen_gem_path’”
If you see this error, check if the directory vendor/rails exists and remove or rename it if it does, it might have an old RoR version.
関連情報
Redmineのアップグレードについて参考になる情報です。
- mod_fcgid for Apache2 helped us get Rails 2.3.5 running on Apache 2
- Running Redmine on Apache
- Notes about our 0.8.6 to 0.9.3 upgrade issues and how to resolve them —cybersprocket (2010-04-25)
- Notes about our 0.9.6 to 1.0(RC) upgrade process —cybersprocket (2010-08-14)

