Redmineを3.0から3.2にUpgrade。今後はGit pullで簡単に更新できるようにしておく

redmine_30_to_32Redmine 3.2のレスポンシブデザインを試したくてアップグレードしたときの覚書。

環境: CentOS 6.7, Ruby 2.2.2-p95, Git 2.6.4

参考

 

目次

  1. バックアップ
  2. GitHub経由でアップグレード
  3. もろもろアップデートしてRedmine再起動

 


1.バックアップ

データベースだけバックアップしておく
# mysqldump -p redmine > 20151218.sql

 


2.GitHub経由でアップグレード

今後のアップグレードを簡単にするためにGitを使って最新版を取得する
# cd /opt/redmine/
# git init
# git remote add origin https://github.com/redmine/redmine.git
# git fetch origin

.gitignoreを確認して今のバージョンをコミットしておく
# less .gitignore
# git add --all
# git commit -m 'Redmine 3.0.3'

これで何しても安心なので、とりあえず3.2とマージしてみる
# git branch -a
# git merge origin/3.2-stable

エラー

error: The following untracked working tree files would be overwritten by merge:

余計なファイルを削除
# rm -f files/delete.me public/dispatch.fcgi.example public/plugin_assets/empty tmp/pdf/empty tmp/test/empty tmp/thumbnails/empty

マージ
# git merge origin/3.2-stable

おびただしい数のConflictが。。。マージする前に戻す
# git reset --hard

参考

「git checkout --theirs」を使うとうまくいくらしい。

ブランチを作ってそっちで作業する
# git checkout -b 3.2-stable

更新
# git checkout --theirs origin/3.2-stable .

無事更新完了。コミットする
# git commit -m 'Merge origin/3.2-stable'

git pullで更新できるようにリモートブランチを設定する
# git branch --set-upstream-to=origin/3.2-stable 3.2-stable

 


3.もろもろアップデートしてRedmine再起動

gemsをアップデート
# bundle update

データベースとプラグインをアップデート
# 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 RAILS_ENV=production

Redmine再起動。起動スクリプトは前の記事を参考に。
# /etc/rc.d/init.d/redmine restart

start redmine
/root/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.8/lib/bundler/rubygems_integration.rb:263:in `block in replace_gem': unicorn is not part of the bundle. Add it to Gemfile. (Gem::LoadError)
        from /opt/redmine/vendor/bundle/ruby/2.2.0/bin/unicorn_rails:22:in `<main>'

”unicorn”がないと怒られた。Gemfileを編集
# less Gemfile

gem "unicorn"

再度起動
# /etc/rc.d/init.d/redmine start

ブラウザで表示して確認。

Gemfileをコミットしておく
# git add Gemfile
# git commit -m 'Modified Gemfile for unicorn gem'

vender/bundleの下にあるのも一応コミットしておく
# git status
# git add --all
# git status
# git commit -m 'Add files under vender/bundle'

 

< Related Posts >