2016年4月20日水曜日

Redmineのアップグレード(3.1→3.2)とGoogle認証プラグイン

昨年7月頃に、「Redmineのアップグレード(2.4.1→3.1)とGoogle認証プラグイン」という記事を書きました。IP制限+BASIC認証(SSL)+Google認証でロックされているのでアップデートをさぼっていたのですが、そろそろアップグレードしないとなーと思って、重い腰を上げました。

最新は、 Redmine 3.2.1 ということ。前回のアップグレードメモを見ながらやってみます(ホント、こういうメモを残しておいてよかった)。簡単に行くのでしょうか、Warningを無視するなら簡単でした...

はじめに

  • Ruby, Passenger(mod_rails for Apache)は変更しない 
  • 前の環境にいつでも戻せるようにする
     ※URLは変更する
のポリシーは変更せずです。

/redmine31 --> /redmine32 (データベーステーブルも、redmine31 --> redmine32)とします。

ですので現環境を何も触らずに新しい場所、新しいテーブル(データベース)に移行するという形です。

1. 仕様確認


を見て、current trunk が ruby 1.9.3 以降対応ということなので、OK。

2. バックアップ


まるごととっておきましょう。
本当に必要なのは
  • config/database.yml
  • config/configuration.yml
  • plugins
  • files
  • public/themes
ですね。
また念のためデータベースのバックアップも取っておきましょう。

3. Redmine のダウンロード


元フォルダ:3.1-stable(URLは /redmine31)
新フォルダ:3.2-stable(URLは /redmine32)

上記フォルダがある階層に移動して

svn co https://svn.redmine.org/redmine/branches/3.2-stable/

4. 設定のコピーと編集


cd 3.2-stable
cp -p ../3.1-stable/config/database.yml  config/
cp -p ../3.1-stable/config/configuration.yml config/

database.yml 編集

  database: redmine31
  を
  database: redmine32

データベースからデータをSQL形式でエクスポートして、

/redmine31 →  /redmine32

と中身を置換してから、テーブル redmine32 をデータベース上に作成して、そこににインポートします。そして、redmine ユーザーにテーブル redmine32 権限を付与します(ユーザー変更しないのなら)

5. ファイルのコピー(データ移行)


cp -rp ../3.1-stable/files/* files/
cp -rp ../3.1-stable/plugins/* plugins/
cp -rp ../3.1-stable/public/themes/* public/themes/

6. 必要なツール類のインストール


3.2-stable のフォルダに入った上で、

gem install bundler
bundle install --without development test
bundle exec rake generate_secret_token

bundle install --without development test でWarning


まぁもう次のサーバー構築中だし、動けばいいよ...
  • Rubygems 1.8.23 is not threadsafe, so your gems will be installed one at a time. Upgrade to Rubygems 2.1.0 or higher to enable parallel gem installation.
  • Warning: the gem 'mini_portile2' was found in multiple sources.
  • Warning: the gem 'addressable' was found in multiple sources.
  • Warning: the gem 'concurrent-ruby' was found in multiple sources.
  • Warning: the gem 'htmlentities' was found in multiple sources.
  • Warning: the gem 'rbpdf-font' was found in multiple sources.
  • Warning: the gem 'css_parser' was found in multiple sources.
  • Warning: the gem 'roadie' was found in multiple sources.
  • Warning: the gem 'roadie-rails' was found in multiple sources.

7. DocumentRoot以下にシンボリックリンクが必要(Railsが動作しないため)


DocumentRoot以下に設置するか、シンボリックリンクを張っておけばいいでしょう。

8. DBのアップデートとキャッシュクリア


bundle exec rake db:migrate RAILS_ENV=production
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
bundle exec rake tmp:cache:clear tmp:sessions:clear

9. redmine_omniauth_googleの設定変更


初めて使うなら、【まめ知識】RedmineでGoogle Apps認証!を参考。
そうでないなら https://cloud.google.com/console より、すでに設定したものの APIと認証、認証情報にある「リダイレクト URI」に

◯◯/redmine32/oauth2callback を追加しておけばよい。

10. リダイレクト


/redmine --> /redmine32
/redmine31 --> /redmine32

へ飛ばすように変更


もし問題があれば、リダイレクトを解除して両方使えるようにして検証するなりすればよでしょう。

11. バージョンアップしていることの確認


Redmine に管理者権限でログインして、管理 > 情報 でバージョン確認できます。
本日時点では、「3.2.1.stable.15345」でした。


2016年4月20日 @kimipooh


0 件のコメント:

コメントを投稿