Redmineを2.6から3.3にアップデートした

  • 2
    いいね
  • 0
    コメント

2年ほど運用しているVPS上のプライベートRedmineのアップデートを行った
ほとんど参考サイトそのままだが手順をまとめておく
目的はRedmineの整理とレスポンシブルデザイン!

参考:http://redmine.jp/guide/RedmineUpgrade/
参考:http://qiita.com/moroishi/items/2832408a0a3fd5845b3c
参考:http://d.hatena.ne.jp/torutk/20150906/p1

環境

旧ディレクトリ:/var/lib/redmine
新ディレクトリ:/var/lib/redmine3

前回はGitでダウンロードしてきたのを展開してインストールした
アプリケーションサーバーはUnicornを使用

備考
OS Ubuntu 14.04.2
Redmine 2.6.2 3.3.2
MySQL 5.5.41 5.5.41
Ruby 2.1.2 2.3.0 rbenvで管理
rbenv 0.4.0 1.1.0 gitで管理
Unicorn 4.8.3 5.2.0 bundlerで管理

rubyの最新は2.4だったが、3.3.2は2.3までのサポートなので、2.3にする
(…2.4でやってしまい動かなかったのは内緒)

プラグインの対応表

xは未インストールのもの、またはアンインストールするもの

対応状況
Redmine Absolute Dates plugin 0.0.2 x -
Redmine Backlogs 1.0.6 x -
Redmine Free Mind plugin 1.1.1 x -
Redmine Issue Templates plugin 0.1.0 x -
Redmine (Monitoring & Controlling) 0.1.1 x -
Redmine Readme plugin 0.0.3 x -
Redmine Agile plugin (Light version) 1.3.8 1.4.2 3.3
Redmine Checklists plugin (Light version) 3.0.4 3.1.5 3.3
Default Assign plugin 0.4 0.5 ?
Knowledgebase 3.0.7 3.2.1 3.2
Lightbox Plugin 2 x 0.3.1 3.3.x
PlantUML Plugin for Redmine x 0.3.0 3.1.x

プラグインのアンインストール

データベースの更新とプラグイン自体の削除をして再起動
アンインストールする理由は、入れたものの使っていないのがほとんど

$cd /var/lib/redmine
$rake redmine:plugins:migrate  NAME=<plugin_name> VERSION=0 RAILS_ENV=production
$rm -rf plugins/<plugin_name>
$kill -QUIT `cat tmp/pids/unicorn.pid`
$bundle exec unicorn_rails -c config/unicorn.rb -E production -D

停止

$kill -QUIT `cat tmp/pids/unicorn.pid`

バックアップ

files以下とDBのバックアップを取る
永続的に残す事も考えて、まとめてzipで固めておく

$mkdir ~/Work/redmine_update
$cd ~/Work/redmine_update/
$cp -r /var/lib/redmine/files .
$mysqldump -uredmine -predmine redmine > mysql.dump
$zip redmine_backup_`date +%Y%m%d`.zip -r files mysql.dump

Ruby

rbenvのアップデート

最新をインストールするため ruby-build(ruby installを提供しているプラグイン)もアップデートする

$cd ~/.rbenv
$git pull
$cd plugins/ruby-build/
$git pull

Rubyのアップデート

ビルドするため時間が掛かる
ビルド中に以下のエラーが出たので、libreadline-devをインストールした

ERROR: Ruby install aborted due to missing extensions
Try running `apt-get install -y libreadline-dev` to fetch missing dependencies.

$apt-get install -y libreadline-dev
$rbenv install 2.3.0
$rbenv rehash
$rbenv global 2.3.0
$gem install bundle
$rbenv rehash

Redmineのアップデート

Redmine本体の更新

インストール時に直接展開していた場合とSVNで行った場合との2パターンがある
自分はGitでダウンロードしてきので、直接展開してた場合で行った

A. 直接展開の場合

何らかの方法でRedmineを取得し展開する

今後のアップデートの手間を考えSVNにした

#apt-get install subversion subversion-tools
$svn co http://svn.redmine.org/redmine/branches/3.3-stable /var/lib/redmine3
設定等のコピー

configuration.ymlは弄ってなかったのでなかった
Unicorn用のファイルもコピー

$cd /var/lib/redmine3
$cp ../redmine/config/database.yml config
$cp ../redmine/config/configuration.yml config
$cp ../redmine/config/unicorn.rb config
$cp ../redmine/Gemfile.local .

filesディレクトリとプラグイン、テーマをコピー

$cp -r ../redmine/files .
$cp -r ../redmine/plugins .
$cp -r ../redmine/public/themes/farend_fancy public/themes
gemのインストールと鍵生成
$bundle install --without development test

相変わらずnokogiri時間掛かるな
終わったらセッション鍵を作成

$bundle exec rake generate_secret_token

B. SVNの場合

$cd /var/lib/redmine
$svn update
$bundle update

プラグインのアップデート

古いものを削除し最新をインストール
またはGitで最新をPull

$rm -rf redmine_agile
$unzip redmine_agile-1_4_2-light.zip
$rm -rf redmine_checklists
$unzip redmine_checklists-3_1_5-light.zip
$cd redmine_default_assign
$git pull
$cd redmine_knowledgebase
$git pull
$bundle install --without development test

テーマのアップデート

$cd public/themes/farend_fancy
$git pull

データベースの更新

$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

起動

$bundle exec unicorn_rails -E production -c config/unicorn.rb -D

結果

無事起動を確認できた…のだが、どうも一部の表示がおかしい
タブやボタンなどが重なっていたり2重になっていたりする
ん~レスポンシブルデザインでスマホで見れるようになったのが個人的に嬉しくてアップデートしたのだけれど…
デフォルトテーマにしても同様の様子、またCSS見てみるか
データは全然問題なかったので一安心

追記:
chromeだと崩れてedgeだと正しく表示された
メインPCのchromeのみで崩れるようなので、調べてみた所、chromeのキャッシュクリアで治った