Redmine

Redmine 3.4.2 へ SVN アップデート

2018/09/10

Redmine 3.4.1, 3.4.2 リリース

Redmine 3.4 がやっと出たと思ったら不具合の修正版がすぐに出た。

 

Redmine 3.4.1 リリース | Redmine.JP Blog (2017/07/09)

Redmine 3.4.2 リリース | Redmine.JP Blog (2017/07/16)

 

SVNアップデート再び

前回(3.3.2 → 3.4.0)がありえないくらい楽だったので、

3.4 系内のバージョンアップも試してみる。

 

Redmine の SVNアップデートって何?という方はこちらへをご参照ください。

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

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

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

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

 

環境

至極普通のLinux環境です。

  • CentOS 7.2
  • Apache 2.4.6
  • MYSQL(mariaDB 10.1)
  • Ruby 2.3.1
  • Redmine 3.4.0

前提条件

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

方針

  • SVN経由で更新すると、当然そのディレクトリが更新されるので、事前にコピーをとっておく
  • Redmine ディレクトリをコピーすることでテーマやDBの設定ファイルを引き継ぎ
  • プラグインは 3.4.0 で検証中のものをそのまま使う

作業概要

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

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

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

  • redmine_home: /var/lib/redmine
  • redmine-3.4.0(現在の本番)
  • redmine-3.4.2(今回作成する Redmine)

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

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

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

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

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

コピー時間短縮と、ディスク容量節約のため、添付ファイル(files)フォルダを除外してコピー

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