Redmine

Redmine 3.4 にリポジトリ(SVN)からアップデートしてみた

Redmine 3.4 リリース

ついに出ました Redmine 3.4。

待ってた一年ぶり。

待ちきれずに 3.3 にしちゃったので本当に待ってた。

今回は神アップデートですよ

今回はホントに多くの機能追加があり、

この機能のためだけにバージョン上げるぜってのが結構ある。

更新者フィルターとか、全幅カスタムフィールドとか。

 

新機能は以下のサイトが詳しいです。

  • Redmine.JP

SVNアップデートをやってみる

お気に入りの機能紹介はとりあえず置いといて、

さっそくアップデートをやりましょう。

 

これまでバージョンは tar を解凍してたのですが、

Redmine 勉強会で @g_maeda さんの発表にあった

『リポジトリ(SVN)からソースをチェックアウトでのバージョンアップ』を試すことに。

@g_maeda さんの redmine.tokyo での発表資料(2016/11)

この方法のメリットはバージョンアップが楽になること

前回SVN チェックアウトで Redmine 3.3.2 をインストールしたため、

今回SVN経由でバージョンアップ作業が可能に。

どれくらい楽になるか楽しみだ。

環境

至極普通のLinux環境です。

前提条件

  • Redmine をSVNチェックアウトで構築していること

方針

  • SVN経由で更新すると、当然そのディレクトリが更新されるので、事前にコピーをとっておく
  • Redmine ディレクトリをコピーすることでテーマやDBの設定ファイルを引き継ぎ
  • プラグインは一旦全部外す(サブディレクトリに退避)

作業概要

  1. ディレクトリ構成確認
  2. 3.4 用フォルダ作成(3.3フォルダをコピー)
  3. プラグインを全退避
  4. SVN update
  5. bundle & rake
  6. シンボリックリンク貼り替え
  7. Redmine 再起動

コマンドは、前述の『Redmineのバージョンアップに追従していくための一工夫』の P.18-20 を参照

1. ディレクトリ構成確認

  • redmine_home: /var/lib/redmine
  • redmine-3.3.2(現在の本番)
  • redmine-3.3.x(過去のRedmineフォルダ)
  • redmine-3.4.0(今回作成する Redmine)

※最新のRedmineフォルダにシンボリック "redmine" を貼ってアクセスさせている。

2. Redmine 3.4 用フォルダ作成(3.3フォルダをコピー)

SVN経由で更新をかけるとそのフォルダが更新されるため、

旧バージョンのディレクトリをコピーして、redmine-3.4.0 ディレクトリを作り、

そのディウレクトリをSVNで更新する。

3. プラグインディレクトリを初期化

プラグインディレクトリをそのままにしていたら、rakeに失敗した。

全プラグインをサブディレクトリに作って、退避する。

4. SVN チェックアウト

手動でパッチを当てたファイルを失念しており、conflict が発生。

その後、conflict の解決のため、競合ファイルを削除し、

再度SVNから取得した。

発生するまで忘れていたが、

逆にコレで手を入れた部分の洗い出しができるのでは(気づき)。

5. bundle & rake

  • bundle update
  • bundle exec rake db:migrate
  • bundle exec rake tmp:clear

6. シンボリックリンク貼り替え

  • 旧シンボリックリンク削除
  • 新シンボリックリンク作成

7. Redmine 再起動

→Webサーバ(Apache)再起動

ブラウザでアクセスして、画面が表示された、OK。

まとめ

リポジトリ(SVN)からソースをチェックアウトでのバージョンアップをやってみて

  • すごく簡単。設定ファイルのコピー漏れなどつまらない失敗も起きない
  • 自分でパッチ当てたところもキャッチできる

というわけで、次からはこの方法でやろうと思いました。

さあ、これで新機能を楽しめるようになったぞ。

 

そしたら次はプラグインだ。

 

ここから一つずつ検証する地道な作業が始まる。

私環境では全社で使っているため、運用上必須のプラグインが多くあり、

プラグイン対応がRedmineのバージョンをあげられないのです。

 

Redmine 関係者 および プラグイン作者を応援しています。

-Redmine
-