20150525103953_clear_estimated_hours_on_parent_issues.rb
15 lines
| 629 B
| text/x-ruby
|
RubyLexer
|
r13890 | class ClearEstimatedHoursOnParentIssues < ActiveRecord::Migration | ||
def self.up | ||||
# Clears estimated hours on parent issues | ||||
Issue.where("rgt > lft + 1 AND estimated_hours > 0").update_all :estimated_hours => nil | ||||
end | ||||
def self.down | ||||
table_name = Issue.table_name | ||||
leaves_sum_select = "SELECT SUM(leaves.estimated_hours) FROM #{table_name} leaves" + | ||||
" WHERE leaves.root_id = #{table_name}.root_id AND leaves.lft > #{table_name}.lft AND leaves.rgt < #{table_name}.rgt" + | ||||
" AND leaves.rgt = leaves.lft + 1" | ||||
Issue.where("rgt > lft + 1").update_all "estimated_hours = (#{leaves_sum_select})" | ||||
end | ||||
end | ||||