はじめに
Redmineのプラグインとして、文書管理のDSMF(redmine_dsmf)と、時間管理のworktime(redmine_dsmf)を共存させようとして苦労した話。
それぞれの根本原因は切り分けできてませんが、対応記録としてメモです。
環境
- CentOS-7 + appache-2.4 + passenger
- rails-4.2.8
- redmine-3.4.6
- DSMF-1.6.1 https://www.redmine.org/plugins/dmsf
- worktime-0.3.4 https://www.redmine.org/plugins/redmine_work_time
手順
初期状態
DSMFがインストール済で稼働中
worktimeのインストール
worktimeの最新版を https://bitbucket.org/tkusukawa/redmine_work_time/downloads からダウンロードし、redmine/plugin 以下に展開。
ここでディレクトリ名を redmine_work_time とすべきところを redmine_work_time-0.3.4 のまま、以下のコマンドでDBマイグレートしてまう。
rake redmine:plugins:migrate RAILS_ENV=production
トラブル1:translation missing:
Redmineをリスタートすると、「translation missing: ja.redmine_work_time」と表示される。これはプラグイン名とディレクトリ名が一致していないのが原因で、ディレクトリ名を修正するだけで対策完了
トラブル2:設定画面が500エラー
redmineのログ
SystemStackError (stack level too deep):
plugins/redmine_dmsf/lib/redmine_dmsf/patches/projects_helper_patch.rb:29:in `project_settings_tabs'
plugins/redmine_work_time/lib/work_time_projects_helper_patch.rb:14:in `project_settings_tabs_with_work_time'
ネット検索で以下のページ( https://github.com/danmunn/redmine_dmsf/issues/845 )を参考に、plugins/redmine_dmsf/lib/redmine_dmsf/patches/projects_helper_patch.rb
の、project_settings_tabs を project_settings_tabs_without_banner に置き換えることでエラーは解消。
トラブル3:プロジェクト作成/削除で500エラー
redmineのログ
redmine-3.4 Error: Table easy_setting doesn't exist
なぜか、easy_settingテーブルが無くなっていたので、redmine全体のマイグレーションを再実行で解消。
bundle exec rake db:migrate RAILS_ENV=production
まとめ
詳細の原因分析をしていませんがこ問題なく動作しているようです。