アップグレード

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 ディレクトリにコピーしてください。

3. メールの設定ファイル config/email.yml を新しい config ディレクトリにコピーしてください。

4. RAILS_ROOT/files ディレクトリを新しいRedmineのディレクトリにコピーしてください。

5. プラグインを新しいRedmineのディレクトリにコピーしてください。

6. Redmineのインストールディレクトリで以下のコマンドを実行してください。

rake generate_session_store

この操作では、セッションデータを安全に扱うための秘密鍵が含まれる config/initializers/session_store.rb ファイルを生成します。

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 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バージョンに起因するエラー」を参照してください).

session_store.rbが存在しないことに起因するエラー

session_store.rb ファイルが存在しない旨のエラーが発生した場合、前述のコマンドを実行してファイルを生成してください。

Railsバージョンに起因するエラー

trunk r2886以降はRails 2.3.5を使用しているので、Ruby on Railsのアップグレードが必要です。

gem install rails -v=2.3.5

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のアップグレードについて参考になる情報です。