Reputation: 1045
I have successfully installed Redmine on a Debian 7 box. The environment is:
Environment:
Redmine version 2.5.1.stable
Ruby version 1.9.3-p194 (2012-04-20) [x86_64-linux]
Rails version 3.2.17
Environment production
Database adapter Mysql2
SCM:
Git 1.7.10.4
Filesystem
Redmine plugins:
scrum 0.5.0
The problem is that when I click on the "Calendar" tab, I get the following error:
500 An error occurred while executing the query and has been logged. Please report this error to your Redmine administrator.
I looked at the Apache logs and this is what it says:
Query::StatementInvalid: Mysql2::Error: Column 'start_date' in where clause is ambiguous: SELECT
issues
.id
AS t0_r0,issues
.tracker_id
AS t0_r1,issues
.project_id
AS t0_r2,issues
.subject
AS t0_r3,issues
.description
AS t0_r4,issues
.due_date
AS t0_r5,issues
.category_id
AS t0_r6,issues
.status_id
AS t0_r7,issues
.assigned_to_id
AS t0_r8,issues
.priority_id
AS t0_r9,issues
.fixed_version_id
AS t0_r10,issues
.author_id
AS t0_r11,issues
.lock_version
AS t0_r12,issues
.created_on
AS t0_r13,issues
.updated_on
AS t0_r14,issues
.start_date
AS t0_r15,issues
.done_ratio
AS t0_r16,issues
.estimated_hours
AS t0_r17,issues
.parent_id
AS t0_r18,issues
.root_id
AS t0_r19,issues
.lft
AS t0_r20,issues
.rgt
AS t0_r21,issues
.is_private
AS t0_r22,issues
.closed_on
AS t0_r23,issues
.sprint_id
AS t0_r24,issues
.position
AS t0_r25,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
AS t1_r11,projects
.inherit_members
AS t1_r12,projects
.product_backlog_id
AS t1_r13,issue_statuses
.id
AS t2_r0,issue_statuses
.name
AS t2_r1,issue_statuses
.is_closed
AS t2_r2,issue_statuses
.is_default
AS t2_r3,issue_statuses
.position
AS t2_r4,issue_statuses
.default_done_ratio
AS t2_r5,trackers
.id
AS t3_r0,trackers
.name
AS t3_r1,trackers
.is_in_chlog
AS t3_r2,trackers
.position
AS t3_r3,trackers
.is_in_roadmap
AS t3_r4,trackers
.fields_bits
AS t3_r5,users
.id
AS t4_r0,users
.login
AS t4_r1,users
.hashed_password
AS t4_r2,users
.firstname
AS t4_r3,users
.lastname
AS t4_r4,users
.users
.admin
AS t4_r6,users
.status
AS t4_r7,users
.last_login_on
AS t4_r8,users
.language
AS t4_r9,users
.auth_source_id
AS t4_r10,users
.created_on
AS t4_r11,users
.updated_on
AS t4_r12,users
.type
AS t4_r13,users
.identity_url
AS t4_r14,users
.mail_notification
AS t4_r15,users
.salt
AS t4_r16,users
.must_change_passwd
AS t4_r17,enumerations
.id
AS t5_r0,enumerations
.name
AS t5_r1,enumerations
.position
AS t5_r2,enumerations
.is_default
AS t5_r3,enumerations
.type
AS t5_r4,enumerations
.active
AS t5_r5,enumerations
.project_id
AS t5_r6,enumerations
.parent_id
AS t5_r7,enumerations
.position_name
AS t5_r8,sprints
.id
AS t6_r0,sprints
.name
AS t6_r1,sprints
.description
AS t6_r2,sprints
.start_date
AS t6_r3,sprints
.end_date
AS t6_r4,sprints
.user_id
AS t6_r5,sprints
.project_id
AS t6_r6,sprints
.created_on
AS t6_r7,sprints
.updated_on
AS t6_r8,sprints
.is_product_backlog
AS t6_r9 FROMissues
INNER JOINissue_statuses
ONissue_statuses
.id
=issues
.status_id
INNER JOINprojects
ONprojects
.id
=issues
.project_id
LEFT OUTER JOINtrackers
ONtrackers
.id
=issues
.tracker_id
LEFT OUTER JOINusers
ONusers
.id
=issues
.assigned_to_id
LEFT OUTER JOINenumerations
ONenumerations
.id
=issues
.priority_id
ANDenumerations
.type
IN ('IssuePriority') LEFT OUTER JOINsprints
ONsprints
.id
=issues
.sprint_id
WHERE (projects.status <> 9 AND projects.id IN (SELECT em.project_id FROM enabled_modules em WHERE em.name='issue_tracking')) AND ((issues.status_id IN (SELECT id FROM issue_statuses WHERE is_closed=0)) AND projects.id IN (1,2)) AND (((start_date BETWEEN '2014-03-30' AND '2014-05-03') OR (due_date BETWEEN '2014-03-30' AND '2014-05-03')))
Any clue?
Upvotes: 2
Views: 1182
Reputation: 11
You need to modify the redmine/app/controller/calendar_controller.rb file.
Add issues before start_date and due_date like this:
events += @query.issues(:include => [:tracker, :assigned_to, :priority], :conditions => ["((issues.start_date BETWEEN ? AND ?) OR (issues.due_date BETWEEN ? AND ?))", @calendar.startdt, @calendar.enddt, @calendar.startdt, @calendar.enddt] )
and restart Redmine.
Upvotes: 1
Reputation: 1261
Mysql2::Error: Column 'start_date' in where clause is ambiguous:
when you will get this error is when plugins which have same column name of redmine column name .
eg:start_date
plugins list
1.scrum 2.holidays
these two plugins have same column name start_date.
so one solution is 1. go to calendars.controller and find this line
events += @query.issues(:include => [:tracker, :assigned_to, :priority], :conditions => ["((start_date BETWEEN ? AND ?) OR (due_date BETWEEN ? AND ?))", @calendar.startdt, @calendar.enddt, @calendar.startdt, @calendar.enddt] )
in this line change start_date to issues.start_date.
so should look like this..
events += @query.issues(:include => [:tracker, :assigned_to, :priority], :conditions => ["((issues.start_date BETWEEN ? AND ?) OR (due_date BETWEEN ? AND ?))", @calendar.startdt, @calendar.enddt, @calendar.startdt, @calendar.enddt] )
restart server......
Upvotes: 2