redmineを2.6.5から3.3.0へバージョンアップした話

こんにちは!光永です
最近めっきり技術ブログばっかり書いているじゃないですかー!やだー!技術屋さんみたい!(錯乱)
ということで今回はredmineのバージョンアップに挑戦しましたのでその経緯をお伝えします。

version upする意気込み

理由づけ

  • 使ってみたいガントチャートのプラグインが対応していないぞ!
    • よろしいならばverupだ!

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

requireの確認

ここで→ http://redmine.jp/guide/RedmineInstall/
最新バージョンが欲しいので、

  • ruby >=1.9.3
  • Rails >=4.1

の構成を狙います

各種バージョンの確認

redmine / ruby / Railsのバージョンを確認します。
参考: http://redmine.jp/faq/system_management/redmine-version/
redmineのインストールフォルダにて以下コマンドを実行

ruby script/about

【結果】

Environment:
  Redmine version                2.6.5.stable
  Ruby version                   2.0.0-p598 (2014-11-13) [x86_64-linux]
  Rails version                  3.2.21
  Environment                    production
  Database adapter               Mysql2
SCM:
  Subversion                     1.7.14
...

Subversionが入ってるので楽々な気配・・・。

各種バックアップ

何かあったら可及的速やかに死亡判定が出るので、いつでもやっとけ念のためのバックアップです。
参考: http://redmine.jp/guide/RedmineUpgrade/
参考: http://d.hatena.ne.jp/torutk/20150906/p1

  • files
    一次フォルダへ格納しときます
    $ mkdir work
    $ cd work
    $ cp -r /var/lib/redmine-2.6.5/files .
    $ ls
    files
  • mysql
    dumpとるよー
    # work
    $ mysqldump -u root -pkzl1222- redmine | gzip > redmine_mysql_`date +%y%m%d%H%M%S`.gz
    $ ls

最新版をインストール

現時点では3.3.0が最新なので、出たばかりにありがちな若干の不安がありつつも入れてみます
subversionよりチェックアウト

$ cd /var/lib
$ svn checkout http://svn.redmine.org/redmine/branches/3.3-stable redmine-3.3.0

各種ファイルのコピー

設定周りのこぴー

# redmine-3.3.0
$ cp -p ../redmine-2.6.5/config/configuration.yml config
$ cp -p ../redmine-2.6.5/config/database.yml config

プラグインのコピー

$ rsync -av ../redmine-2.6.5/plugins/ plugins/

添付ファイルのコピー

$ cp -pr ../redmine-2.6.5/files .

追加テーマがあればここでコピーするようです

gemのインストール

# redmine-3.3.0
$ bundle update

バージョン確認

$ ruby bin/about # <- script/aboutから変更になった模様

おやエラー

An error occurred while loading the routes definition of redmine_charts2 plugin 
(/var/lib/redmine-3.3.0/plugins/redmine_charts2/config/routes.rb): '' is not a supported controller name. 
This can lead to potential routing problems. 
See http://guides.rubyonrails.org/routing.html#specifying-a-controller-to-use.

プラグインのルーティングがあきません!と言われている模様
このプラグイン三年放置されてて更新ない感じですね・・・
よし一旦すてます(必要なら後で入れなおせばいいのよ!)

$ rm -rf plugins/redmine_charts2/

無事動きましたー

$ ruby bin/about
Environment:
  Redmine version                3.3.0.stable.15638
  Ruby version                   2.0.0-p598 (2014-11-13) [x86_64-linux]
  Rails version                  4.2.6
  Environment                    production
  Database adapter               Mysql2
SCM:
  Subversion                     1.7.14
  Git                            1.8.3.1
  Filesystem
Redmine plugins:
  redmine_importer               1.2.2

データベースの更新

DB・プラグインのDBともにまいぐれーとします

$ 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

シンボリックリンクの変更

/ver/lib/redmineを変更します!どきどき

$ cd ../
# /ver/lib
$ ln -nfs /var/lib/redmine-3.3.0 redmine

160712_redmine_error
あぼん
ログみまーす・・・

$ vi /var/log/httpd/error_log
App 29782 stderr: [ 2016-07-12 12:27:40.6137 29815/0x00000003eecef8(Worker 1) utils.rb:85 ]:  *** Exception RuntimeError in Rack application object  (Missing `secret_token` and `secret_key_base` for 'production' environment, set these values  in `config/secrets.yml`) (process 29815, thread 0x00000003eecef8(Worker 1)):

config/secrets.ymlてなんですのんありませんけどおこおこ

で、調べたところ、Rails4.1系からはsecret_keyの認証が変わったとかなんとか・・・(あいまい)

Rails>=4.1に対応する

とりあえずconfig/secrets.ymlをつくります

# /redmine-3.3.0
$ touch config/secrets.yml

なかみはこんなかんじらしい・・・

# config/secrets.yml
development:
  secret_key_base: hogekey…
 
test:
  secret_key_base: fugakey…
 
production:
  secret_key_base: hogehogekey # <- これがなかったのがエラーの原因!

secret_keyは適当に書いてもいいよ!みたいな情報を見つけたので
(´-`).。oO(ほんとうにええのか・・・?)
と思いつつキーを生成してhogehogekeyのところにコピペします

$ bundle exec rake secret RAILS_ENV=production

↑この結果をコピペする

念願の一瞬・・・!

そして念のためキャッシュ・セッションをもっかい消して、
redmineもrestart・・・

160712_login
やったぜ。
なお再起動は以下の手順です。

  1. tmp以下にrestart.txtの空ファイルをつくる
    $ touch tmp/restart.txt
  2. ブラウザでredmineへアクセス!
  3. tmp/restart.txtが自動で消えず残っていることがあるので、消す

Redmine3の感想

160712_kanso1
レスポンシブ対応してるーーー!

160712_kanso2
ガントチャートに日付ついてるーーーー!

160712_kanso3
これ・・・が便利なのかはまだわからないーーー!(すなお)

ということで無事バージョンアップできました。
▼ りなっくす力(ちから) が3上がった!
▼ Rails力 が1上がった!
▼ ruby力 が1上がった!
そんなわけで光永でした!
また次回!