@@ -1,15 +1,15 | |||||
1 | class ClearEstimatedHoursOnParentIssues < ActiveRecord::Migration |
|
1 | class ClearEstimatedHoursOnParentIssues < ActiveRecord::Migration | |
2 | def self.up |
|
2 | def self.up | |
3 | # Clears estimated hours on parent issues |
|
3 | # Clears estimated hours on parent issues | |
4 | Issue.where("rgt > lft + 1 AND estimated_hours > 0").update_all :estimated_hours => nil |
|
4 | Issue.where("rgt > lft + 1 AND estimated_hours > 0").update_all :estimated_hours => nil | |
5 | end |
|
5 | end | |
6 |
|
6 | |||
7 | def self.down |
|
7 | def self.down | |
8 | table_name = Issue.table_name |
|
8 | table_name = Issue.table_name | |
9 | leaves_sum_select = "SELECT SUM(leaves.estimated_hours) FROM #{table_name} leaves" + |
|
9 | leaves_sum_select = "SELECT SUM(leaves.estimated_hours) FROM (SELECT * FROM #{table_name}) AS leaves" + | |
10 | " WHERE leaves.root_id = #{table_name}.root_id AND leaves.lft > #{table_name}.lft AND leaves.rgt < #{table_name}.rgt" + |
|
10 | " WHERE leaves.root_id = #{table_name}.root_id AND leaves.lft > #{table_name}.lft AND leaves.rgt < #{table_name}.rgt" + | |
11 | " AND leaves.rgt = leaves.lft + 1" |
|
11 | " AND leaves.rgt = leaves.lft + 1" | |
12 |
|
12 | |||
13 | Issue.where("rgt > lft + 1").update_all "estimated_hours = (#{leaves_sum_select})" |
|
13 | Issue.where("rgt > lft + 1").update_all "estimated_hours = (#{leaves_sum_select})" | |
14 | end |
|
14 | end | |
15 | end |
|
15 | end |
General Comments 0
You need to be logged in to leave comments.
Login now