会社の Bitnami (Redmine) が 2.5 で古いのだけど Bitnami は一度アンインストールしてからインストールする必要があるようだったので放置してた。3.2 になるに至っていろいろ機能追加されてきた機能が欲しいというリクエストをもらったのでアップデート。vmware の windows で何回かアップデートの練習をしたおかげか特に問題なく終わった。後は、本体に直接入れていた修正をそのまま当て直すか、plugin 化するかが残っている状態。
以下アップデートのメモ
2.5 をアンインストール
念のためBitnami のルートフォルダからバックアップしておく。MySQL のデータはダンプしておく。
プログラムの追加と削除に登録されていないので (2.6 にはあった) インストールフォルダに有る uninstall.exe から実行
- 「データも全て削除」を選択
- レジストリキーを削除中を表示したまま応答なしの期間がけっこうあった。ディスクアクセス 100% だったのでノートンが過剰反応したように思う。
- 4 つに増やしていた redmine のインスタンスも無事削除された
- php の残骸が残っていたけど Bitnami フォルダごと削除
3.2 をインストール
- https://bitnami.com/stack/redmine からダウンロードして exe を叩くだけ
アプリケーションの停止
- manager-windows.exe を起動
- MySQL 以外の各アプリケーションを停止する
ダンプファイルからリストア
コンソールを立ち上げる
- use_redmine.bat を叩く
- 必要な環境変数がセットされたコマンドプロンプトが起動する
- rails、git、mysql 各コマンドが使えるようになる
MySQL にデータを読み込む
mysql -u bitnami -pパスワード bitnami_redmine < ファイルのパス
マイグレーション
> cd c:\Bitnami\redmine-3.2.0-0\apps\redmine\htdocs > ruby -v ruby 2.0.0p647 (2015-08-18) [i386-mingw32] > bundle exec rake db:migrate RAILS_ENV=production
email_addresses
がすでに存在しているよエラーがでるけど、drop するとまずいので以下のファイルの中身をコメントアウトして再実行
- 20150113194759_create_email_addresses.rb
- 20150113213955_add_email_addresses_user_id_index.rb
その他の既にテーブルがある旨のエラーは中身が空であることを確認して drop する
mysql> drop table email_addresses; mysql> drop table roles_managed_roles; mysql> drop table imports; mysql> drop table import_items; mysql> drop table custom_field_enumerations;
再度マイグレーションを実行して終了を待つ。これ前にも遭遇した気がするのだけど、何か解決案はあるんだろうか?それともわざとそうなってるんだろうか?
plugin をインストール
- plugins フォルダに git で clone
- Redmine Q&A plugin が対応していなかったけど、とく使っていない上に手を入れてたりしてたので放置
入れている plugin 一覧
- Parent issue filter plugin for Redmine
- Redmine Enter Cancel plugin
- Redmine Export With Journals plugin
- Redmine Local Avatars plugin
必要になって自作して入れてるもの
- Redmine Add Class To Column plugin
- Redmine Comment Only plugin
- Redmine Default Due Date Plugin
- Redmine Diff Mail plugin
- Redmine Side Contents plugin
- Redmine Wiki Index Tree View plugin
3.2 になって本体に取り込まれたので不要になったもの
plugin のアップデート
> bundle exec rake redmine:plugins:migrate RAILS_ENV=production
セションとキャッシュのクリア
bundle exec rake tmp:cache:clear tmp:sessions:clear
files フォルダを移す
- バックアップから戻す
- configuration.yaml の設定で files フォルダの位置を変更
メールの設定
- configuration.yaml の設定
pdf 出力時のフォント設定
- configuration.yaml の設定
rmagick_font_path: C:\windows\fonts\meiryo.ttc
ログ出力
config.logger = Logger.new("log/production.log", 5, 10 * 1024 * 1024) config.log_level = :warn
2.5 では↓のようにログレベルを指定していたので、そのまま定義したのだけど効いてなかった。
logger の方の指定がちゃんと効いているかは不明・・・。
config.logger = Logger.new("log/production.log", 5, 10 * 1024 * 1024) config.logger.level = Logger::WARN
アプリケーションの起動
- manager-windows.exe を起動
- アプリケーションを起動する
Redmine Comment Only plugin
テスト中にデフォルトの言語の中に日本語が出てこない現象が発生。ググってみると同じ現象が発生した人を発見。
http://ouranos.sakura.ne.jp/wordpress/2015/12/12/
自分の plugin が原因だった orz
原因を辿ってみると i18n.rb
の中で言語を抽出してる時に蹴られちゃってるっぽいのだけどよく分からず。こういう時に型と IDE があれば・・・と思う・・。locale 周りっぽいことは分かったのでいろいろためしてみると、config/locales/en.yml
の中に手抜きして en と ja の両方を定義していたのがダメだったようだ。
en: label_redmine_comment_only_display_all: 'display all history' ja: label_redmine_comment_only_display_all: '全ての履歴を表示'
分割して問題解決。
まとめ
いろいろハマるんじゃないかなぁとか plugin がまた全部死んじゃうんだろうなぁとか思っていたのだけど、大きくハマることもなく済んでよかった。次にアップデートするのはまた一年後かな。