アップグレード

最終更新: 2017/08/21 [原文]

Step 1 - 動作環境の確認

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>

Step 3 - アップグレードの実行

いよいよ実際にアップグレードを行います。アップグレード元のRedmineをどのようにダウンロードしたかによって手順が異なります。次に説明する手順のうち いずれか一つだけ を実行してください。

Option 1 - リリースバージョンのダウンロード

1. 新しいRedmineのtarballを ダウンロード して新しいディレクトリに展開してください。

アプリケーションサーバを実行しているユーザー/グループがファイルにアクセスできるよう、新たに展開したファイルとディレクトリのオーナーとグループが適切であることを確認してください。

さらに、fileslogtmpの各ディレクトリは書き込み権限も必要です。

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のディレクトリにコピーしてください(このディレクトリにはRedmineにアップロードしたすべてのファイルが入っています)。

5. plugins ディレクトリ内の独自に追加したプラグインを新しいRedmineのディレクトリにコピーしてください(1.xからのアップグレードの場合は vendor/plugins ディレクトリ)。Redmineに標準添付されていないプラグインのみをコピーするよう注意してください。

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

bundle install --without development test

ImageMagickがインストールされていない場合は以下のように実行してrmagickのインストールを省略する必要があります:

bundle install --without development test rmagick

データベース設定ファイルで指定したデータベースアダプタが必要とするgemのみがインストールされます(例えば、 config/database.yml 内で'mysql2'アダプタを指定した場合は、mysql2 gemのみがインストールされます)。別のデータベースを使うために config/database.yml を変更したら、忘れずに 'bundle install' を実行してください。

もしRedmine本体では使用しないgem(例: fcgi)の読み込みが必要な場合、Redmineのインストールディレクトリに Gemfile.local というファイルを作成してください。このファイルは 'bundle install' を実行したときに自動的に読み込まれます。

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

もしRedmine 2.xからアップデートする場合、以下のファイルが存在すれば削除してください。

  • config/initializers/secret_token.rb (2.x)
  • config/initializers/session_store.rb (1.x)

そして、新しいセッション保護用の秘密鍵を生成してください。

bundle exec rake generate_secret_token

あるいは、この秘密鍵を config/secrets.yml に保存することもできます。
http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#config-secrets-yml

8. public/themes ディレクトリ内のテーマを確認してください。これらは新しい環境にコピーできますが、なるべくアップデートされたバージョンを使ってください。

重要

絶対に config/settings.yml を古いもので上書きしないでください。

SVNチェックアウトのアップグレード

1. Redmineのインストールディレクトリに移動して、以下のコマンドを実行してください:

svn update

2. 必要なgemをインストールするために以下のコマンドを実行してください。

bundle update

Step 4 - データベースの更新

データベースの内容を更新します。新しいRedmineのインストールディレクトリに移動し、データベースのマイグレーションを行ってください。

bundle exec rake db:migrate RAILS_ENV=production

なにかプラグインをインストールしている場合、プラグインについてもデータベースのマイグレーションを行う必要があります。

bundle exec rake redmine:plugins:migrate RAILS_ENV=production

Step 5 - クリーンナップ

1. キャッシュとセッションファイルのクリアを行ってください。

bundle exec rake tmp:cache:clear tmp:sessions:clear RAILS_ENV=production

2. アプリケーションサーバを再起動してください (例 puma, thin, passenger)

3. 最後に「管理」→「ロールと権限」画面を開き、Redmineの新バージョンで新たに追加された機能に対する権限の確認・設定を行ってください。

よくある問題

リポジトリ管理に関するエラー

reposman.rb にはいくつかの新機能が追加されました。何か問題が発生したら、まずはリポジトリのUNIXグループを指定しているか確認してください(--group=groupnamehere)。また、もし単にRedmine.pmをコピーしただけであれば、 ここ に記載してある手順を再度確認するとともに、Apacheの推奨設定が変更されているためApacheの設定を更新してください。

secret_token.rb の生成

Redmine 2.0.0より前のバージョンでは、cookieベースのセッション管理を利用するために session_store.rb を生成する必要がありました。

2.0.0以降では、 session_store.rb は存在してはなりません。代わりに以下のコマンドで secret_token.rb を生成します:

bundle exec rake generate_secret_token

Note

Redmineのリポジトリとtarballには config/initializers/session_store.rb ファイルは含まれていません。上記のコマンドを実行することで生成されます。

関連情報

Redmineのアップグレードについて参考になる情報です。