redmineでsvnの設定をしたら設定画面で500エラーになる
redmineでsvnのリポジトリを設定したら、そのプロジェクトの[設定]をクリックするとInternal Server Error(500)が出るようになった。
発生条件
- WindowsからredmineをLinuxへ移行した (このときwindowsのパスが設定されたdbを丸ごと移行)
- 同プロジェクトにLinuxに移行してから別のリポジトリを追加(あるいは編集かも?)
- ActionView::TemplateError (comparison of Repository::Subversion with Repository::Subversion failed みたいなエラーが出る(詳しくは以下)
cat redmine/log/production.log
参考のため長めにログを張っておく。
Processing ActivitiesController#index (for 192.168.0.7 at 2012-06-05 11:12:35) [GET] Parameters: {"controller"=>"activities", "action"=>"index", "id"=>"hogehoge"} Rendering template within layouts/base Rendering activities/index Completed in 395ms (View: 253, DB: 13) | 200 OK [http://192.168.0.1/redmine/projects/hogehoge/activity] Processing ProjectsController#settings (for 192.168.0.7 at 2012-06-05 11:12:39) [GET] Parameters: {"controller"=>"projects", "action"=>"settings", "id"=>"hogehoge"} Rendering template within layouts/base Rendering projects/settings ActionView::TemplateError (comparison of Repository::Subversion with Repository::Subversion failed) on line #13 of app/views/projects/settings/_repositories.html.erb: 10: </tr> 11: </thead> 12: <tbody> 13: <% @project.repositories.sort.each do |repository| %> 14: <tr class="<%= cycle 'odd', 'even' %>"> 15: <td><%=h repository.scm_name %></td> 16: <td><%=h repository.identifier %></td> app/views/projects/settings/_repositories.html.erb:13 app/views/common/_tabs.html.erb:24:in `block in _run_erb_app47views47common47_tabs46html46erb_locals_object_tabs' app/views/common/_tabs.html.erb:23:in `each' app/views/common/_tabs.html.erb:23 app/helpers/application_helper.rb:231:in `render_tabs' app/views/projects/settings.html.erb:3 <internal:prelude>:10:in `synchronize' 以下略
データベースを弄った大まかな流れ
当該プロジェクトの設定全般に触れなくなってしまったので、データベースを勘で編集したった。てへぺろ(・ω<)
(redmineの仕組みもdbのスキーマも全く完全に理解しないで編集してます。よい子は真似しない)
とりあえずバックアップを取って…
# mysqldump -u redmine -p<pass> redmine(db名) > dbsnap
ログインする
# mysql -u redmine -p<pass> # use redmine;
で、
怪しそうなモジュールを無効にしてみると、設定画面が表示されるようになった!
でも結局[リポジトリ]モジュールを有効にするとエラー…
> delete from enabled_module where name=repository;
あやしげなリポジトリ(file:///D:/projects/svn/hogehoge みたいなpath)を削除してみると、正常に戻った!(ような気がする!)
> delete from repositories where id=8;
\(^^)/直ったー
環境
CentOS release 6.2 (Final), redmine1.4.1 , svn version 1.6.11 (r934486)
# gem list *** LOCAL GEMS *** actionmailer (2.3.14) actionpack (2.3.14) activerecord (2.3.14) activeresource (2.3.14) activesupport (2.3.14) bigdecimal (1.1.0) bundler (1.1.3) coderay (1.0.6) daemon_controller (1.0.0) edavis10-object_daddy (0.4.3) fastercsv (1.5.5) fastthread (1.0.7) i18n (0.4.2) io-console (0.3) json (1.5.4) metaclass (0.0.1) minitest (2.5.1) mocha (0.11.4) mysql (2.8.1) mysql2 (0.2.18) net-ldap (0.3.1) passenger (3.0.12) pg (0.13.2) rack (1.1.3) rails (2.3.14) rake (0.9.2.2) rdoc (3.9.4) rmagick (2.13.1) ruby-openid (2.1.8) shoulda (3.0.1, 2.10.3) shoulda-context (1.0.0) shoulda-matchers (1.0.0) sqlite3 (1.3.6) tzinfo (0.3.33)