designetwork

ネットワークを軸としたIT技術メモ

安全・簡単に30分でRedmine3.1.1->3.2.2バージョンアップする

Redmineを新バージョン並行稼動切り替えすることで、データロスのリスクなくバージョンアップする。
最初は楽をしようとSVNアップデートを実行したが、予定の3.2まで上がらず、再バージョンアップした。
 3.1.1 → 3.1.5 → 3.2.2

これでレスポンシブデザインにより、スマートフォンでも快適にチケット管理できる。

前提情報

バージョンアップは基本的にRedmineオフィシャルサイトの情報を元に実行しています。また、当初のインストールもオフィシャルサイトの情報を元にしています。
自分の環境では関係ない部分などは省略しているため、お目通しください。

http://redmine.jp/guide/RedmineUpgrade/

サーバ:CentOS Linux release 7.2.1511 (Core) (VM)

※環境依存要素等の確認ができきっていないため、十分に確認の上、実施願います。失敗時の責任は負いかねます。
念のため記載していますが、バックアップを取った上で並行環境を構築するため、データロストすることはほぼないです。

事前バージョン

事前準備

redmine-3.2.2.tar.gz をダウンロードしてサーバに移動させる。
ダウンロードはこちらから

Download - Redmine

バックアップ

データベースをバックアップする。

mysqldump -p db_redmine > 20160524-redmine.sql

添付ファイル等をバックアップする。とりあえずコピーを退避させる。

cd /var/lib/redmine
cp -r files /root/

アップグレード

ダウンロードしたRedmineを展開する。私は/rootに圧縮ファイルを置いていた。
これにより、現バージョンのredmineredmine-3.2.2ディレクトリが並存する。そのため、現行環境への上書きは発生せず、データロストは発生しない

../ libに移動
tar xvzf /root/redmine-3.2.2.tar.gz

データベース設定ファイル config/database.yml を新しい config ディレクトリにコピーする

cp redmine/config/database.yml redmine-3.2.2/config/database.yml

設定ファイル config/configuration.yml を新しい config ディレクトリにコピーする。

cp redmine/config/configuration.yml redmine-3.2.2/config/configuration.yml

filesディレクトリをコピーする。添付ファイルなどが含まれる。

cp -r redmine/files redmine-3.2.2/

必要に応じてプラグインもコピーする。

gemインストールと鍵生成

cd redmine-3.2.2/
bundle install --without development test
bundle exec rake generate_secret_token

データベースの更新

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

並行稼動時のApache設定

ApacheRedmine DocumentRootを新バージョンに切り替える。

vi /etc/httpd/conf/httpd.conf

<VirtualHost *:80>
    ServerName redmine.com
#    DocumentRoot /var/lib/redmine/public
    DocumentRoot /var/lib/redmine-3.2.2/public
</VirtualHost>

並行稼動でバージョンアップしたRedmineへの切り替えを実施する際には、こちらの設定も必要。
ここの変更を忘れると、CSSファイルにアクセスできず、デザイン・レイアウトが表示されない。

vi /etc/httpd/conf.d/redmine.conf

# Redmineの画像ファイル・CSSファイル等へのアクセスを許可する設定。
# Apache 2.4のデフォルトではサーバ上の全ファイルへのアクセスが禁止されている。
#<Directory "/var/lib/redmine/public">
<Directory "/var/lib/redmine-3.2.2/public">
  Require all granted
</Directory>

service httpd restart

/etc/httpd/conf.d/redmine.conf の編集を忘れると、次のようにデザイン・レイアウトが表示されない。

バージョンアップ完了

無事にバージョンアップが完了した。

Environment:
  Redmine version                3.2.2.stable
  Ruby version                   2.2.2-p95 (2015-04-13) [x86_64-linux]
  Rails version                  4.2.5.2
  Environment                    production
  Database adapter               Mysql2
SCM:
  Subversion                     1.7.14
  Git                            1.8.3.1
  Filesystem                     
Redmine plugins:
  no plugin installed

トラブルシューティング

SVNアップグレードでは 3.1.1->3.1.5 マイナーバージョンアップ

Step 3 – アップグレードの実行
1. リリースバージョンのダウンロード
2. SVNチェックアウトのアップグレード

こちらを選択してアップグレードしてみたら、簡単ではあったが、3.1.5までしか上がらず、3.2のレスポンシブデザインは使えなかった。

設定画面でInternal error発生

こちらを参照

Redmineの設定画面・ファイル添付でInternal errorが発生する - designetwork