torutkのブログ

ソフトウェア・エンジニアのブログ

[Redmine]Redmine 2.6.1から3.1.0へのバージョンアップ

CentOS 6.7上で稼動しているRedmine 2.6.1を、Redmine 3.1.0へバージョンアップします。また、rubyのバージョンも最新の2.2系にアップすることにします。RackサーバーはUnicornを、WebサーバーはNginxを使っています。

現状とバージョンアップ後の整理

項目 現状 バージョンアップ後
ruby 2.1.5 2.2.3
Redmine 2.6.1 3.1.0
Unicorn 4.8.3 4.9.0

新しいバージョンでの追加機能などは、redmine.jpのリリース案内でさらっと見ることができます。バージョン2.6からは、3.0、3.1と2つバージョンが上がっています。

Redmineは次のディレクトリに展開します。

/var/lib/
  +-- redmine             シンボリックリンク
  +-- redmine-2.6.1/
  +-- redmine-3.1.0/

シンボリックリンク/var/lib/redmineは、現状は/var/lib/redmine-2.6.1を指しており、バージョンアップ後は/var/lib/redmine-3.1.0を指します。

バージョンアップ作業前に、この環境で使用しているプラグインのバージョン、新しいバージョンの有無、Redmine 3.1対応情報を調査・整理します。次のようになっています。

プラグイン種類 使用中のバージョン 最新バージョン Redmine-3.1.0対応状況
clipboard_image_paste 1.9 1.10 ◎(但し 3.0.x)
redmine_banner 0.1.0 0.1.1
redmine_embedded_flash 1.0.0 なし(2013-01-22以降更新無し) 不明
redmine_github_hook 2.1.0 2.2.0 不明
redmine_glossary 0.7.0(chiastoliteフォーク版) なし
redmine_issue_templates 0.0.9 0.1.0 ◎(但し 3.0.x)
redmine_startpage 0.0.3 なし(2013-11-22以降更新無し) 不明
redmine_wiki_extensions 0.6.4 0.7.0 ◎(但し 3.0.x)
sidebar_hide 0.0.7 なし(2014-05-30以降更新無し) 不明
  • ◎は、Redmine公式サイトのPlugins Directoryで3.1対応記載のあるもの
  • ○は、その他の情報で3.1動作確認報告があるもの
  • △は、修正情報がありそれを加えると動作するもの
  • ×は、動作しなかった情報があるもの

Redmineのバージョンアップの難関はこのプラグインの移行です。Redmineの新しいバージョンに対応していないプラグインがあると、Redmineバージョンアップ作業の途中でエラーになってしまうことや、うまくRedmineのバージョンアップが成功した(エラーがなく作業が終わった)としても、そのあと動作させるといろいろなエラーが発生するということがよくあります。


バージョンアップのおおよその手順は、Redmine.jpの次の記事に沿って進めます。
アップグレード - Redmineガイド
記事との違いは、Redmineが使用するgemのインストール先をシステムではなくredmineディレクトリ配下にしている点です。

サービスの停止

RackサーバーのUnicornを停止します。

~$ sudo service unicorn stop

バックアップ

まずは、Redmineのデータをバックアップします。Redmineのデータは、データベースに格納されるデータとファイルシステム上に格納される添付ファイルとからなるので、この両方のバックアップを取っておきます。

  • 注)添付ファイルのバックアップは今回のバージョンアップ作業では手を入れることはないのでバックアップをしなくてもいいかと(昔は)思っていました。が、いつぞやRedmineのバージョンアップ作業時につい誤って添付ファイルが格納されるfilesディレクトリを移動のつもりが削除してしまい、冷や汗をかいてからはバックアップを取ることにしています。
添付ファイルのバックアップ
~$ mkdir work
~$ cd work
work$ cp -r /var/lib/redmine-2.6.1/files .
work$ ls
files
work$
MySQLのデータをバックアップ

以下コマンドライン例で使う名称

  • MySQLのデータベース名: db_redmine
  • MySQLのユーザー名: redminer
  • MySQLのユーザーredminerのパスワード: xxxxxxxx
work$ mysqldump -uredminer -pxxxxxxxx db_redmine > redmine_mysql-$(date +%Y%m%dT%H%M%S).dump
work$ ls
files  redmine_mysql-20150906T112114.dump
work$

Rubyのバージョンアップ

今回ついでにRubyのバージョンアップをします。
Redmineのインストールの際、Rubyの各モジュール(gem)はRubyのバージョン依存のディレクトリに格納されるので、後からRubyのバージョンを変更するとgemのインストールをし直すところからやり直さなくてはなりません。

~$ sudo yum erase ruby
  :
~$ sudo yum localinstall ruby-2.2.3-1.el6.x86_64.rpm
  :
~$

また、Redmineインストール時にbundlerを使用するので、あらかじめインストールしておきます。

~$ sudo gem install bundler
Fetching: bundler-1.10.6.gem (100%)
Successfully installed bundler-1.10.6
Parsing documentation for bundler-1.10.6
Installing ri documentation for bundler-1.10.6
Done installing documentation for bundler after 7 seconds
1 gem installed
~$

Redmine 3.1.0の展開

/var/libの下に、redmine-3.1.0.tar.gzを展開します。
展開後、ディレクトリ・ファイルの所有権をredmineユーザーに変更します。

work$ cd /var/lib
lib$ sudo tar xzf ~/redmine-3.1.0.tar.gz
lib$ sudo chown -R redmine.redmine redmine-3.1.0
lib$

redmineディレクトリでは、頻繁にコマンド実行を行うので、Linux上にredmineユーザーを作成し、そのユーザー権限でディレクトリ・ファイルの操作とunicorn起動をするようにしています。

各種設定の引継ぎ

redmine-2.6.1から設定ファイルをコピーしてきます。以下の作業はredmineユーザーで実施します。

lib$ cp -p redmine-2.6.1/config/configuration.yml redmine-3.1.0/config
lib$ cp -p redmine-2.6.1/config/database.yml redmine-3.1.0/config
lib$ cp -p redmine-2.6.1/config/unicorn.rb redmine-3.1.0/config
lib$ cp -p redmine-2.6.1/Gemfile.local redmine-3.1.0/
lib$
  • Rackサーバーにunicornを使用しているので、その設定としてunicorn.rbとGemfile.local(unicornを追加する記述)が必要になっています。

redmine-2.6.1から添付ファイルディレクトリをコピーします。(サイズが大きいようなら移動)

lib$ cp -pr redmine-2.6.1/files redmine-3.1.0
lib$

redmine-2.6.1からプラグインをコピーします。

lib$ rsync -av redmine-2.6.1/plugins/ redmine-3.1.0/plugins/
  :

redmine-2.6.1から追加インストールしたテーマをコピーします。標準でalternateとclassicが入っているので、これを除外してコピーします。

lib$ rsync -av --exclude alternate --exclude classic redmine-2.6.1/public/themes/ redmine-3.1.0/public/themes/
  :

アップグレード作業

Redmineが使用するgemのインストール

Redmineに必要なRubyモジュール(gem)をインストールします。

さっそくエラーに遭遇しました。

lib$ cd redmine-3.1.0
redmine-3.1.0$ bundle install --path vendor/bundler --without development test
Warning: this Gemfile contains multiple primary sources. Using `source` more 
than once without a block is a security risk, and may result in installing 
unexpected gems. To resolve this warning, use a block to indicate which gems 
should come from the secondary source. To upgrade this warning to an error, 
run `bundle config disable_multisource true`.

[!] There was an error parsing `Gemfile`:
[!] There was an error parsing `Gemfile`: You cannot specify the same gem 
twice with different version requirements.
You specified: simplecov (~> 0.9.1) and simplecov (>= 0). Bundler cannot 
continue.


 #  from /var/lib/redmine-3.1.0/plugins/redmine_issue_templates/Gemfile:4
 #  -------------------------------------------
 #  group :test do
 >    gem "simplecov"
 #    gem "simplecov-rcov"
 #  -------------------------------------------
. Bundler cannot continue.

 #  from /var/lib/redmine-3.1.0/Gemfile:110
 #  -------------------------------------------
 #  Dir.glob File.expand_path("../plugins/*/{Gemfile,PluginGemfile}", 
__FILE__) do |file|
 >    eval_gemfile file
 #  end
 #  -------------------------------------------
redmine-3.1.0$ 

プラグイン周りです。redmine_issue_templates プラグインのGemfile記述がだめな模様です。redmine_issue_templatesは、冒頭の調査で記述したとおりRedmine 3.0に対応する最新バージョン(0.1.0)が存在するので、先にバージョンアップしておきます。

redmine-3.1.0$ cd plugins/redmine_issue_templates/
redmine_issue_templates$ hg pull
pulling from https://bitbucket.org/akiko_pusu/redmine_issue_templates
searching for changes
adding changesets
adding manifests
adding file changes
added 23 changesets with 32 changes to 22 files
(run 'hg update' to get a working copy)

redmine_issue_templates$ hg update
22 files updated, 0 files merged, 0 files removed, 0 files unresolved
redmine_issue_templates$ 

再度、gemファイル群のインストールをします。

redmine-3.1.0$ bundle install --path vendor/bundler --without development test
Warning: this Gemfile contains multiple primary sources. Using `source` more than 
once without a block is a security risk, and may result in installing unexpected 
gems. To resolve this warning, use a block to indicate which gems should come from 
the secondary source. To upgrade this warning to an error, run `bundle config 
disable_multisource true`.
Warning: this Gemfile contains multiple primary sources. Using `source` more than 
once without a block is a security risk, and may result in installing unexpected 
gems. To resolve this warning, use a block to indicate which gems should come from 
the secondary source. To upgrade this warning to an error, run `bundle config 
disable_multisource true`.
Fetching gem metadata from https://rubygems.org/.........
Fetching version metadata from https://rubygems.org/..
Resolving dependencies.............................
Using rake 10.4.2
Installing i18n 0.7.0
Installing json 1.8.3 with native extensions
Installing minitest 5.8.0
Installing thread_safe 0.3.5
Installing tzinfo 1.2.2
Installing activesupport 4.2.3
Installing builder 3.2.2
Installing erubis 2.7.0
Installing mini_portile 0.6.2
Installing nokogiri 1.6.6.2 with native extensions
Installing rails-deprecated_sanitizer 1.0.3
Installing rails-dom-testing 1.0.7
Installing loofah 2.0.3
Installing rails-html-sanitizer 1.0.2
Installing actionview 4.2.3
Installing rack 1.6.4
Installing rack-test 0.6.3
Installing actionpack 4.2.3
Installing globalid 0.3.6
Installing activejob 4.2.3
Installing mime-types 2.6.1
Installing mail 2.6.3
Installing actionmailer 4.2.3
Installing actionpack-action_caching 1.1.1
Installing actionpack-xml_parser 1.0.2
Installing activemodel 4.2.3
Installing arel 6.0.3
Installing activerecord 4.2.3
Using bundler 1.10.6
Installing coderay 1.1.0
Installing thor 0.19.1
Installing railties 4.2.3
Installing jquery-rails 3.1.4
Installing kgio 2.9.3 with native extensions
Installing mysql2 0.3.20 with native extensions
Installing net-ldap 0.3.1
Installing protected_attributes 1.1.3
Installing ruby-openid 2.3.0
Installing rack-openid 1.4.2
Installing sprockets 3.3.4
Installing sprockets-rails 2.3.2
Installing rails 4.2.3
Installing raindrops 0.15.0 with native extensions
Installing rbpdf 1.18.6
Installing redcarpet 3.1.2 with native extensions
Using redmine_github_hook 2.1.0 from source at /var/lib/redmine-3.1.0/plugins/redmine_github_hook
Installing request_store 1.0.5
Installing rmagick 2.15.4 with native extensions
Installing unicorn 4.9.0 with native extensions
Bundle complete! 34 Gemfile dependencies, 50 gems now installed.
Gems in the groups development and test were not installed.
Bundled gems are installed into ./vendor/bundler.
redmine-3.1.0$ 

今度は成功しました。

プラグインを最新に更新

ついでに、新しいバージョンが出ているプラグインについては、ここで更新しておきます。

  • clipboard_image_paste
redmine-3.1.0$ cd plugins/clipboard_image_paste/
clipboard_image_paste$ git pull
remote: Counting objects: 27, done.
remote: Total 27 (delta 9), reused 9 (delta 9), pack-reused 18
Unpacking objects: 100% (27/27), done.
From git://github.com/peclik/clipboard_image_paste
   761bf2c..85b6c37  master     -> origin/master
 * [new tag]         v1.10      -> v1.10
Updating 761bf2c..85b6c37
Fast-forward
 README.textile                                    |   11 +-
 app/views/clipboard_image_paste/_headers.html.erb |    2 +-
 assets/javascripts/jcrop-0.9.12-p1.js             | 1708 +++++++++++++++++++++
 assets/javascripts/jcrop-0.9.12-p1.min.js         |  114 ++
 assets/javascripts/jcrop-0.9.12.min.js            |   22 -
 config/locales/zh-TW.yml                          |    2 +-
 init.rb                                           |    2 +-
 lib/clipboard_image_paste/attachment_patch.rb     |    1 -
 suppl/cbp-standalone-test.html                    |    2 +-
 9 files changed, 1835 insertions(+), 29 deletions(-)
 create mode 100644 assets/javascripts/jcrop-0.9.12-p1.js
 create mode 100644 assets/javascripts/jcrop-0.9.12-p1.min.js
 delete mode 100644 assets/javascripts/jcrop-0.9.12.min.js
clipboard_image_paste$
redmine_banner$ git pull
remote: Counting objects: 79, done.
remote: Total 79 (delta 29), reused 29 (delta 29), pack-reused 50
Unpacking objects: 100% (79/79), done.
From https://github.com/akiko-pusu/redmine_banner
   542844e..fdaf905  master     -> origin/master
   4a8a70e..7027286  dev        -> origin/dev
 * [new branch]      feature/for-redmine3.0 -> origin/feature/for-redmine3.0
 * [new tag]         0.1.1      -> 0.1.1
Updating 542844e..fdaf905
Fast-forward
 Gemfile                                           |  4 +
 README.rdoc                                       |  6 ++
 app/controllers/banner_controller.rb              |  3 +-
 app/models/banner.rb                              |  5 +-
 config/routes.rb                                  |  6 +-
 init.rb                                           |  4 +-
 test/functional/banner_controller_test.rb         | 98 +++++++++++------------
 test/functional/banner_setting_controller_test.rb | 24 +-----
 test/integration/layout_test.rb                   |  6 +-
 test/test_helper.rb                               |  4 +-
 10 files changed, 76 insertions(+), 84 deletions(-)
 create mode 100644 Gemfile
redmine_github_hook$ git pull
remote: Counting objects: 76, done.
remote: Total 76 (delta 16), reused 17 (delta 16), pack-reused 59
Unpacking objects: 100% (76/76), done.
From git://github.com/koppen/redmine_github_hook
   51b644f..122ad0e  master     -> origin/master
From git://github.com/koppen/redmine_github_hook
 * [new tag]         v2.2.0     -> v2.2.0
Updating 51b644f..122ad0e
Fast-forward
 README.md                                      | 13 +------
 app/controllers/github_hook_controller.rb      | 40 ++++++++++++++++-----
 app/helpers/git_hook_helper.rb                 |  2 --
 app/services/github_hook/message_logger.rb     | 43 ++++++++++++++++++++++
 app/services/github_hook/null_logger.rb        |  8 +++++
 app/services/github_hook/updater.rb            |  9 +----
 lib/redmine_github_hook/version.rb             |  2 +-
 test/functional/github_hook_controller_test.rb | 14 ++++++--
 test/unit/github_hook/message_logger_test.rb   | 49 ++++++++++++++++++++++++++
 test/unit/github_hook/updater_test.rb          | 15 ++++++--
 10 files changed, 160 insertions(+), 35 deletions(-)
 delete mode 100644 app/helpers/git_hook_helper.rb
 create mode 100644 app/services/github_hook/message_logger.rb
 create mode 100644 app/services/github_hook/null_logger.rb
 create mode 100644 test/unit/github_hook/message_logger_test.rb
redmine_startpage$ git pull
remote: Counting objects: 3, done.
remote: Total 3 (delta 1), reused 1 (delta 1), pack-reused 2
Unpacking objects: 100% (3/3), done.
From https://github.com/txinto/redmine_startpage
   cdd6623..4029f49  master     -> origin/master
Updating cdd6623..4029f49
Fast-forward
 README.rdoc | 3 +++
 1 file changed, 3 insertions(+)
redmine_wiki_extensions$ hg pull
pulling from https://bitbucket.org/haru_iida/redmine_wiki_extensions
searching for changes
adding changesets
adding manifests
adding file changes
added 14 changesets with 21 changes to 16 files
(run 'hg update' to get a working copy)

redmine_wiki_extensions$ hg update
36 files updated, 0 files merged, 0 files removed, 0 files unresolved
sidebar_hide$ git pull
remote: Counting objects: 25, done.
remote: Total 25 (delta 13), reused 13 (delta 13), pack-reused 12
Unpacking objects: 100% (25/25), done.
From https://github.com/bdemirkir/sidebar_hide
   bfe684c..b5ba670  master     -> origin/master
Updating bfe684c..b5ba670
Fast-forward
 app/views/sidebar/_hideButton_partial.html.erb |  2 +-
 assets/stylesheets/sidebar_hide.css            | 17 ++++++++++++++++-
 2 files changed, 17 insertions(+), 2 deletions(-)

redmine 3.0対応のフォーク版に差し替えます。

plugins$ /bin/rm -rf redmine_glossary
plugins$ git clone  https://github.com/torutk/redmine_glossary.git
Cloning into 'redmine_glossary'...
remote: Counting objects: 270, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 270 (delta 2), reused 0 (delta 0), pack-reused 264
Receiving objects: 100% (270/270), 64.78 KiB, done.
Resolving deltas: 100% (107/107), done.
セッション鍵の生成
redmine-3.1.0$ bundle exec rake generate_secret_token
データベースの更新(マイグレート)
redmine-3.1.0$ bundle exec rake db:migrate RAILS_ENV=production
== 20141029181752 AddTrackersDefaultStatusId: migrating =======================
-- add_column(:trackers, :default_status_id, :integer)
   -> 1.4688s
== 20141029181752 AddTrackersDefaultStatusId: migrated (1.6068s) ==============

== 20141029181824 RemoveIssueStatusesIsDefault: migrating =====================
-- remove_column(:issue_statuses, :is_default)
   -> 0.2475s
== 20141029181824 RemoveIssueStatusesIsDefault: migrated (0.2477s) ============

== 20141109112308 AddRolesUsersVisibility: migrating ==========================
-- add_column(:roles, :users_visibility, :string, {:limit=>30, :default=>"all", :null=>false})
   -> 0.2516s
== 20141109112308 AddRolesUsersVisibility: migrated (0.2518s) =================

== 20141122124142 AddWikiRedirectsRedirectsToWikiId: migrating ================
-- add_column(:wiki_redirects, :redirects_to_wiki_id, :integer)
   -> 0.0564s
-- change_column(:wiki_redirects, :redirects_to_wiki_id, :integer, {:null=>false})
   -> 0.0434s
== 20141122124142 AddWikiRedirectsRedirectsToWikiId: migrated (0.1231s) =======

== 20150113194759 CreateEmailAddresses: migrating =============================
-- create_table(:email_addresses)
   -> 0.0060s
== 20150113194759 CreateEmailAddresses: migrated (0.0061s) ====================

== 20150113211532 PopulateEmailAddresses: migrating ===========================
== 20150113211532 PopulateEmailAddresses: migrated (0.2168s) ==================

== 20150113213922 RemoveUsersMail: migrating ==================================
-- remove_column(:users, :mail)
   -> 0.1089s
== 20150113213922 RemoveUsersMail: migrated (0.1090s) =========================

== 20150113213955 AddEmailAddressesUserIdIndex: migrating =====================
-- add_index(:email_addresses, :user_id)
   -> 0.0712s
== 20150113213955 AddEmailAddressesUserIdIndex: migrated (0.0714s) ============

== 20150208105930 ReplaceMoveIssuesPermission: migrating ======================
== 20150208105930 ReplaceMoveIssuesPermission: migrated (0.1170s) =============

== 20150510083747 ChangeDocumentsTitleLimit: migrating ========================
-- change_column(:documents, :title, :string, {:limit=>nil, :default=>"", :null=>false})
   -> 0.1091s
== 20150510083747 ChangeDocumentsTitleLimit: migrated (0.1093s) ===============

== 20150525103953 ClearEstimatedHoursOnParentIssues: migrating ================
== 20150525103953 ClearEstimatedHoursOnParentIssues: migrated (0.0041s) =======

== 20150526183158 AddRolesTimeEntriesVisibility: migrating ====================
-- add_column(:roles, :time_entries_visibility, :string, {:limit=>30, :default=>"all", :null=>false})
   -> 0.3774s
== 20150526183158 AddRolesTimeEntriesVisibility: migrated (0.3777s) ===========

== 20150528084820 AddRolesAllRolesManaged: migrating ==========================
-- add_column(:roles, :all_roles_managed, :boolean, {:default=>true, :null=>false})
   -> 0.1742s
== 20150528084820 AddRolesAllRolesManaged: migrated (0.1743s) =================

== 20150528092912 CreateRolesManagedRoles: migrating ==========================
-- create_table(:roles_managed_roles, {:id=>false})
   -> 0.0037s
== 20150528092912 CreateRolesManagedRoles: migrated (0.0038s) =================

== 20150528093249 AddUniqueIndexOnRolesManagedRoles: migrating ================
-- add_index(:roles_managed_roles, [:role_id, :managed_role_id], {:unique=>true})
   -> 0.0107s
== 20150528093249 AddUniqueIndexOnRolesManagedRoles: migrated (0.0108s) =======

redmine-3.1.0$
プラグインのデータベース更新
redmine-3.1.0$ bundle exec rake redmine:plugins:migrate RAILS_ENV=production
Migrating clipboard_image_paste (Clipboard image paste)...
Migrating redmine_banner (Redmine Banner plugin)...
Migrating redmine_embedded_flash (Redmine Embedded Flash plugin)...
Migrating redmine_github_hook (Redmine Github Hook plugin)...
Migrating redmine_glossary (Redmine Glossary Plugin)...
Migrating redmine_issue_templates (Redmine Issue Templates plugin)...
Migrating redmine_startpage (Redmine Startpage plugin)...
Migrating redmine_wiki_extensions (Redmine Wiki Extensions plugin)...
== 13 AddDisableTags: migrating ===============================================
-- add_column(:wiki_extensions_settings, "tag_disabled", :boolean, {:default=>false})
   -> 1.8377s
== 13 AddDisableTags: migrated (1.8379s) ======================================

Migrating sidebar_hide (Sidebar Hide Plugin)...
redmine-3.1.0$
キャッシュとセッションのクリア
redmine-3.1.0$ bundle exec rake tmp:cache:clear tmp:sessions:clear
redmine-3.1.0$
シンボリックリンク(/var/lib/redmine)の更新
~$ cd /var/lib
lib$ sudo ln -nfs /var/lib/redmine-3.1.0 redmine
lib$ ls -l
  :
redmine -> /var/lib/redmine-3.1.0
  :
テーマの更新
  • farend_fancy
redmine-3.1.0$ cd public/themes/
themes$ cd farend_fancy
farend_fancy$ git pull
remote: Counting objects: 208, done.
remote: Total 208 (delta 49), reused 49 (delta 49), pack-reused 159
Receiving objects: 100% (208/208), 41.69 KiB, done.
Resolving deltas: 100% (101/101), completed with 2 local objects.
From git://github.com/farend/redmine_theme_farend_fancy
   5bdf0fc..52d4ee7  master     -> origin/master
Updating 5bdf0fc..52d4ee7
Fast-forward
 images/database_gear.png      | Bin 0 -> 468 bytes
 images/information.png        | Bin 0 -> 778 bytes
 images/redmine-logo-250px.gif | Bin 0 -> 3106 bytes
 javascripts/theme.js          |  32 ++++++
 stylesheets/application.css   | 244 +++++++++++++++++++++++++++++++++++-------
 5 files changed, 236 insertions(+), 40 deletions(-)
 create mode 100644 images/database_gear.png
 create mode 100644 images/information.png
 create mode 100644 images/redmine-logo-250px.gif
 create mode 100644 javascripts/theme.js
  • gitmike
themes$ cd gitmike/
gitmike$ git pull
remote: Counting objects: 39, done.
remote: Total 39 (delta 17), reused 17 (delta 17), pack-reused 22
Unpacking objects: 100% (39/39), done.
From git://github.com/makotokw/redmine-theme-gitmike
   7fb0ec7..ff18d5e  master     -> origin/master
 * [new tag]         v1.0.0     -> v1.0.0
 * [new tag]         v1.0.1     -> v1.0.1
 * [new tag]         v1.0.1_ja  -> v1.0.1_ja
 * [new tag]         v1.0.2     -> v1.0.2
 * [new tag]         v1.0.2_ja  -> v1.0.2_ja
 * [new tag]         v1.0.3     -> v1.0.3
 * [new tag]         v1.0.3_ja  -> v1.0.3_ja
 * [new tag]         v1.0.4     -> v1.0.4
 * [new tag]         v1.0.5     -> v1.0.5
 * [new tag]         v1.0.6     -> v1.0.6
 * [new tag]         v1.0.7     -> v1.0.7
Updating 7fb0ec7..ff18d5e
Fast-forward
 .gitignore                  |  15 +++-
 Gruntfile.js                |  48 -----------
 README.md                   |  26 +++---
 gulpfile.js                 |  52 ++++++++++++
 package.json                |  14 ++--
 sass/_forms.scss            |  56 ++++++-------
 sass/_functions.scss        |   3 -
 sass/_login.scss            |  18 ++--
 sass/_mixins.scss           | 198 +-------------------------------------------
 sass/_projects.scss         |  55 +++++++-----
 sass/_store.scss            |   4 +-
 sass/_tables.scss           |   6 +-
 sass/_variables.scss        |   1 -
 sass/_wiki.scss             |   2 +-
 sass/application.scss       |  84 +++++++++----------
 stylesheets/application.css | 114 ++++++++++++-------------
 16 files changed, 269 insertions(+), 427 deletions(-)
 delete mode 100644 Gruntfile.js
 create mode 100644 gulpfile.js
 delete mode 100644 sass/_functions.scss
Unicornの起動
~$ sudo service unicorn start

バージョンアップ感想など

手順が整備されているとはいえ、やはりRedmineのバージョンアップは面倒です。
特に、プラグインを使用していると、ケースバイケースでエラーが出るので対応が大変です。
出来る限り少ないプラグインを厳選して使用するのがよいですね。プラグイン入れ過ぎではバージョンアップ対応がかなり大変です。

バージョンアップが見込めないプラグインについては、そのままでは悪さをするようであれば、バージョンアップ前に先に公式手順で削除(rake redmine:plugins:migrate NAME=xxx VERSION=0 ...)しておいてから、バージョンアップするのがよいかなと思います。