Redmine Internal error的解决方案
有很多原因可能引起Internal error,这里列出的只是我遇到的情况。
在centos6.4下安装redmine2.3.4后,将以前在windows下使用的redmine1.1的数据库备份,并恢复到现有linux系统下。恢复后发现登陆界面可以正常显示,数据也恢复了,但是无法登陆进去,报出Internal error错误,查看看log日志发现如下信息:
Internal error
An error occurredon the page you were trying to access.
If you continue to experience problems please contact your Redmineadministrator for assistance.
If you are the Redmine administrator,check your log files for details about the error.
然后查看日志,发现出错日志是这样的:
Completed 500Internal Server Error in 85ms
ActionView::Template::Error(Mysql2::Error: Unknown column 'projects.inherit_members' in 'field list':SELECT `members`.`id` AS t0_r0, `members`.`user_id` AS t0_r1,`members`.`project_id` AS t0_r2, `members`.`created_on` AS t0_r3,`members`.`mail_notification` AS t0_r4, `projects`.`id` AS t1_r0,`projects`.`name` AS t1_r1, `projects`.`description` AS t1_r2,`projects`.`homepage` AS t1_r3, `projects`.`is_public` AS t1_r4,`projects`.`parent_id` AS t1_r5, `projects`.`created_on` AS t1_r6,`projects`.`updated_on` AS t1_r7, `projects`.`identifier` AS t1_r8,`projects`.`status` AS t1_r9, `projects`.`lft` AS t1_r10, `projects`.`rgt` ASt1_r11, `projects`.`inherit_members` AS t1_r12, `roles`.`id` AS t2_r0,`roles`.`name` AS t2_r1, `roles`.`position` AS t2_r2, `roles`.`assignable` ASt2_r3, `roles`.`builtin` AS t2_r4, `roles`.`permissions` AS t2_r5,`roles`.`issues_visibility` AS t2_r6 FROM `members` LEFT OUTER JOIN `projects`ON `projects`.`id` = `members`.`project_id` LEFT OUTER JOIN `member_roles` ON`member_roles`.`member_id` = `members`.`id` LEFT OUTER JOIN `roles` ON`roles`.`id` = `member_roles`.`role_id` WHERE `members`.`user_id` = 1 AND(projects.status<>9) ORDER BY projects.name):
34: <%= hidden_field_tag(controller.default_search_scope, 1, :id =>nil) if controller.default_search_scope %>
35: <label for='q'>
36: <%= link_to l(:label_search),{:controller => 'search', :action => 'index', :id => @project},:accesskey => accesskey(:search) %>:
37: </label>
38: <%= text_field_tag 'q', @question, :size => 20, :class =>'small', :accesskey => accesskey(:quick_search) %>
39: <% end %>
40: <%= render_project_jump_box %>
问题原因:原来使用的是redmine1.1,新的版本是redmine2.3.4, 数据结构有些不同,因此需要更新数据库。
解决办法:
Step 1 – Updatethe database
This step is theone that could change the contents of your database. Go to your new redminedirectory, then migrate your database:
rake db:migrateRAILS_ENV=production
If you haveinstalled any plugins, you should also run their database migrations:
rakeredmine:plugins:migrate RAILS_ENV=production
1. You shouldclear the cache and the existing sessions:
raketmp:cache:clear
raketmp:sessions:clear
2. Restart theapplication server (e.g. puma, thin, passenger)
3. Finally goto “Admin -> Roles & permissions” to check/setpermissions for the new features, if any.