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 をダウンロードしてサーバに移動させる。
ダウンロードはこちらから
バックアップ
データベースをバックアップする。
mysqldump -p db_redmine > 20160524-redmine.sql
添付ファイル等をバックアップする。とりあえずコピーを退避させる。
cd /var/lib/redmine
cp -r files /root/
アップグレード
ダウンロードしたRedmineを展開する。私は/rootに圧縮ファイルを置いていた。
これにより、現バージョンのredmineとredmine-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設定
ApacheのRedmine 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発生
こちらを参照