arveltのソフトウェア技術メモ

Arvelt's software technology memo

Redmine2.2.2でリカバリ後にActionView::Template::Errorがでた。

Redmine2.2.2のmysqlデータダンプを使用して、新しい環境に書き戻した際にエラーが出た話。


http://redmine.jp/faq/system_management/backup/
公式サイトより、以下を実行する

#DBダンプを取得
mysqldump -u MySQLユーザー名 -pMySQLパスワード Redmineデータベース名 > データ出力先ファイル名

#DBダンプの反映
mysql -u MySQLユーザー名 -pMySQLパスワード Redmineデータベース名 < ダンプデータファイル名

うまくいったように見えたが、チケットの画面を表示すると以下のようにエラーがでた。


ActionView::Template::Error (undefined local variable or method `position_name' for #<IssuePriority:0x0000000699a768>):
    29:       </td>
    30:     </tr>
    31:     <% previous_group = group %>
    32:   <% end %>
    33:   <tr id="issue-<%= issue.id %>" class="hascontextmenu <%= cycle('odd', 'even') %> <%= issue.css_classes %> <%= level > 0 ? "idnt idnt-#{level}" : nil %>">
    34:     <td class="checkbox hide-when-print"><%= check_box_tag("ids[]", issue.id, false, :id => nil) %></td>
    35:     <td class="id"><%= link_to issue.id, issue_path(issue) %></td>
  app/models/issue_priority.rb:39:in `css_classes'
  app/models/issue.rb:939:in `css_classes'
  app/views/issues/_list.html.erb:32:in `block (2 levels) in _app_views_issues__list_html_erb___3945077832140828423_54981120'
  app/helpers/issues_helper.rb:29:in `block in issue_list'
  app/helpers/issues_helper.rb:25:in `each'
  app/helpers/issues_helper.rb:25:in `issue_list'
  app/views/issues/_list.html.erb:19:in `block in _app_views_issues__list_html_erb___3945077832140828423_54981120'
  app/views/issues/_list.html.erb:1:in `_app_views_issues__list_html_erb___3945077832140828423_54981120'
  app/views/issues/index.html.erb:62:in `_app_views_issues_index_html_erb__435604328560213161_53178600'
  app/controllers/issues_controller.rb:83:in `block (2 levels) in index'
  app/controllers/issues_controller.rb:82:in `index'


なぜここだけなのかよくわからなかったが、
http://answers.bitnami.org/questions/9549/after-upgrading-bitnami-redmine-from-214-0-to-220-0-many-screens-dont-show-up
この人と似た人が起きていた。


そこでRAILS_ENV=production rake db:migrateを実行してからmysqlapacheも再起動したら直った。
書き戻す前に一度実行していたのだが、タイミングがいかなかったのだろうか。