Commit a937413c56b617f6c925f6eb19b3f38dc42ec3f3
1 parent
47c8d62e
Exists in
master
and in
1 other branch
re-indent prune_db rake file
Showing
1 changed file
with
115 additions
and
115 deletions
Show diff stats
lib/tasks/prune_db.rake
1 | namespace :prune_db do | 1 | namespace :prune_db do |
2 | - | 2 | + |
3 | task :all => [:invalidate_votes_with_bad_response_times] | 3 | task :all => [:invalidate_votes_with_bad_response_times] |
4 | 4 | ||
5 | task(:invalidate_votes_with_bad_response_times => :environment) do | 5 | task(:invalidate_votes_with_bad_response_times => :environment) do |
6 | - badvotes = [] | ||
7 | - #might want to optimize later to not start from the beginning each time | ||
8 | - STDOUT.sync = true | ||
9 | - Vote.find_each(:batch_size => 10000, :include => :appearance) do |v| | ||
10 | - next if v.nil? || v.appearance.nil? | ||
11 | - server_response_time = v.created_at.to_f - v.appearance.created_at.to_f | ||
12 | - if v.time_viewed && v.time_viewed/1000 > server_response_time | ||
13 | - badvotes << v | ||
14 | - print "." | ||
15 | - end | ||
16 | - end | ||
17 | - puts "\n" | ||
18 | - | ||
19 | - if badvotes.any? | ||
20 | - | ||
21 | - badvotes.each do |v| | ||
22 | - v.time_viewed = nil | ||
23 | - v.missing_response_time_exp = "invalid" | ||
24 | - v.save! | ||
25 | - end | ||
26 | - else | ||
27 | - puts "Could not find any bad votes. Yay." | ||
28 | - end | 6 | + badvotes = [] |
7 | + #might want to optimize later to not start from the beginning each time | ||
8 | + STDOUT.sync = true | ||
9 | + Vote.find_each(:batch_size => 10000, :include => :appearance) do |v| | ||
10 | + next if v.nil? || v.appearance.nil? | ||
11 | + server_response_time = v.created_at.to_f - v.appearance.created_at.to_f | ||
12 | + if v.time_viewed && v.time_viewed/1000 > server_response_time | ||
13 | + badvotes << v | ||
14 | + print "." | ||
15 | + end | ||
16 | + end | ||
17 | + puts "\n" | ||
18 | + | ||
19 | + if badvotes.any? | ||
20 | + | ||
21 | + badvotes.each do |v| | ||
22 | + v.time_viewed = nil | ||
23 | + v.missing_response_time_exp = "invalid" | ||
24 | + v.save! | ||
25 | + end | ||
26 | + else | ||
27 | + puts "Could not find any bad votes. Yay." | ||
28 | + end | ||
29 | end | 29 | end |
30 | - | 30 | + |
31 | task(:associate_skips_with_appearances => :environment) do | 31 | task(:associate_skips_with_appearances => :environment) do |
32 | - skips_to_fix = Skip.find(:all, :conditions => {:appearance_id => nil}) | ||
33 | - skips_to_fix.each do |skip| | ||
34 | - puts "Skip #{skip.id} : " | ||
35 | - possible_appearances = skip.skipper.appearances.find(:all, :conditions => {:prompt_id => skip.prompt_id}) | ||
36 | - if possible_appearances.nil? || possible_appearances.empty? | ||
37 | - puts " I couldn't find any matches!" | ||
38 | - skip.delete | ||
39 | - next | ||
40 | - end | ||
41 | - if possible_appearances.size > 1 | ||
42 | - puts " More than one possible appearance" | ||
43 | - possible_appearances.delete_if{|a| a.answered?} | ||
44 | - if possible_appearances.size > 1 || possible_appearances.size == 0 | ||
45 | - puts" And I couldn't narrow it down.... moving on" | ||
46 | - skip.delete | ||
47 | - next | ||
48 | - end | ||
49 | - end | ||
50 | - possible_appearance = possible_appearances.first | ||
51 | - if possible_appearance.answered? | ||
52 | - puts " This appearance has been answered already! Moving on" | ||
53 | - skip.delete | ||
54 | - else | ||
55 | - puts " MATCH" | ||
56 | - skip.appearance_id = possible_appearance.id | ||
57 | - skip.save! | ||
58 | - end | ||
59 | - end | 32 | + skips_to_fix = Skip.find(:all, :conditions => {:appearance_id => nil}) |
33 | + skips_to_fix.each do |skip| | ||
34 | + puts "Skip #{skip.id} : " | ||
35 | + possible_appearances = skip.skipper.appearances.find(:all, :conditions => {:prompt_id => skip.prompt_id}) | ||
36 | + if possible_appearances.nil? || possible_appearances.empty? | ||
37 | + puts " I couldn't find any matches!" | ||
38 | + skip.delete | ||
39 | + next | ||
40 | + end | ||
41 | + if possible_appearances.size > 1 | ||
42 | + puts " More than one possible appearance" | ||
43 | + possible_appearances.delete_if{|a| a.answered?} | ||
44 | + if possible_appearances.size > 1 || possible_appearances.size == 0 | ||
45 | + puts" And I couldn't narrow it down.... moving on" | ||
46 | + skip.delete | ||
47 | + next | ||
48 | + end | ||
49 | + end | ||
50 | + possible_appearance = possible_appearances.first | ||
51 | + if possible_appearance.answered? | ||
52 | + puts " This appearance has been answered already! Moving on" | ||
53 | + skip.delete | ||
54 | + else | ||
55 | + puts " MATCH" | ||
56 | + skip.appearance_id = possible_appearance.id | ||
57 | + skip.save! | ||
58 | + end | ||
59 | + end | ||
60 | end | 60 | end |
61 | - | 61 | + |
62 | task(:move_vote_and_skip_ids_to_appearance => :environment) do | 62 | task(:move_vote_and_skip_ids_to_appearance => :environment) do |
63 | - #Vote.find_each do |v| | ||
64 | - # @appearance = Appearance.find(v.appearance_id) | ||
65 | -# @appearance.answerable = v | ||
66 | -# @appearance.save | ||
67 | -# if v.id % 1000 == 0 | ||
68 | -# puts v.id | ||
69 | -# end | ||
70 | -# end | ||
71 | - Skip.find_each do |s| | ||
72 | - if s.appearance_id | ||
73 | - @appearance = Appearance.find(s.appearance_id) | ||
74 | - | ||
75 | - if @appearance.answerable | ||
76 | - puts "Appearance #{@appearance.id} has more than one skip!" | ||
77 | - else | ||
78 | - @appearance.answerable = s | ||
79 | - @appearance.save | ||
80 | - end | ||
81 | - end | 63 | + #Vote.find_each do |v| |
64 | + # @appearance = Appearance.find(v.appearance_id) | ||
65 | + # @appearance.answerable = v | ||
66 | + # @appearance.save | ||
67 | + # if v.id % 1000 == 0 | ||
68 | + # puts v.id | ||
69 | + # end | ||
70 | + # end | ||
71 | + Skip.find_each do |s| | ||
72 | + if s.appearance_id | ||
73 | + @appearance = Appearance.find(s.appearance_id) | ||
74 | + | ||
75 | + if @appearance.answerable | ||
76 | + puts "Appearance #{@appearance.id} has more than one skip!" | ||
77 | + else | ||
78 | + @appearance.answerable = s | ||
79 | + @appearance.save | ||
80 | + end | ||
82 | end | 81 | end |
82 | + end | ||
83 | end | 83 | end |
84 | 84 | ||
85 | task(:remove_double_counted_votes_with_same_appearance => :environment) do | 85 | task(:remove_double_counted_votes_with_same_appearance => :environment) do |
86 | 86 | ||
87 | - votes_with_no_appearance = [] | ||
88 | - Vote.find_each(:include => :appearance) do |v| | ||
89 | - puts v.id if v.id % 1000 == 0 | 87 | + votes_with_no_appearance = [] |
88 | + Vote.find_each(:include => :appearance) do |v| | ||
89 | + puts v.id if v.id % 1000 == 0 | ||
90 | + | ||
91 | + votes_with_no_appearance << v if v.appearance.nil? | ||
92 | + end | ||
90 | 93 | ||
91 | - votes_with_no_appearance << v if v.appearance.nil? | ||
92 | - end | ||
93 | - | ||
94 | - skips_with_no_appearance = [] | ||
95 | - Skip.find_each(:include => :appearance) do |s| | ||
96 | - puts s.id if s.id % 1000 == 0 | 94 | + skips_with_no_appearance = [] |
95 | + Skip.find_each(:include => :appearance) do |s| | ||
96 | + puts s.id if s.id % 1000 == 0 | ||
97 | 97 | ||
98 | - skips_with_no_appearance << s if s.appearance.nil? | ||
99 | - end | 98 | + skips_with_no_appearance << s if s.appearance.nil? |
99 | + end | ||
100 | 100 | ||
101 | 101 | ||
102 | - puts "#{votes_with_no_appearance.size} Votes" | ||
103 | - puts "#{skips_with_no_appearance.size} Skips" | 102 | + puts "#{votes_with_no_appearance.size} Votes" |
103 | + puts "#{skips_with_no_appearance.size} Skips" | ||
104 | 104 | ||
105 | - votes_with_no_appearance.each do |v| | ||
106 | - v.valid_record = false | ||
107 | - v.validity_information = "No associated appearance object" | ||
108 | - v.save! | ||
109 | - end | 105 | + votes_with_no_appearance.each do |v| |
106 | + v.valid_record = false | ||
107 | + v.validity_information = "No associated appearance object" | ||
108 | + v.save! | ||
109 | + end | ||
110 | 110 | ||
111 | - skips_with_no_appearance.each do |s| | ||
112 | - s.valid_record = false | ||
113 | - s.validity_information = "No associated appearance object" | ||
114 | - s.save! | ||
115 | - end | 111 | + skips_with_no_appearance.each do |s| |
112 | + s.valid_record = false | ||
113 | + s.validity_information = "No associated appearance object" | ||
114 | + s.save! | ||
115 | + end | ||
116 | 116 | ||
117 | end | 117 | end |
118 | 118 | ||
119 | #call this by doing rake prune_db:populate_seed_ideas['blahblah',questionnum], where blahblah is the filename | 119 | #call this by doing rake prune_db:populate_seed_ideas['blahblah',questionnum], where blahblah is the filename |
120 | task(:populate_seed_ideas, :args1, :args2, :needs => :environment) do | task, arguments| | 120 | task(:populate_seed_ideas, :args1, :args2, :needs => :environment) do | task, arguments| |
121 | - filename = arguments[:args1] | ||
122 | - question_num = arguments[:args2] | 121 | + filename = arguments[:args1] |
122 | + question_num = arguments[:args2] | ||
123 | 123 | ||
124 | - puts filename | ||
125 | - puts question_num | 124 | + puts filename |
125 | + puts question_num | ||
126 | 126 | ||
127 | - q = Question.find(question_num) | ||
128 | - creator_id = q.creator_id | 127 | + q = Question.find(question_num) |
128 | + creator_id = q.creator_id | ||
129 | 129 | ||
130 | - File.open(filename, "r") do |infile| | ||
131 | - while( data= infile.gets) | ||
132 | - c = Choice.new(:creator_id => creator_id, | ||
133 | - :question_id => q.id, | ||
134 | - :active => true, | ||
135 | - :data => data.chomp) | 130 | + File.open(filename, "r") do |infile| |
131 | + while( data= infile.gets) | ||
132 | + c = Choice.new(:creator_id => creator_id, | ||
133 | + :question_id => q.id, | ||
134 | + :active => true, | ||
135 | + :data => data.chomp) | ||
136 | 136 | ||
137 | - c.save | ||
138 | - end | ||
139 | - end | 137 | + c.save |
138 | + end | ||
139 | + end | ||
140 | 140 | ||
141 | end | 141 | end |
142 | 142 | ||
@@ -147,12 +147,12 @@ namespace :prune_db do | @@ -147,12 +147,12 @@ namespace :prune_db do | ||
147 | question = Question.find(question_id) | 147 | question = Question.find(question_id) |
148 | 148 | ||
149 | orphaned_votes = Vote.find(:all, | 149 | orphaned_votes = Vote.find(:all, |
150 | - :select => "votes.id", | ||
151 | - :joins => "LEFT JOIN appearances ON (votes.id = appearances.answerable_id AND answerable_type <> 'Skip')", | ||
152 | - :conditions => ["answerable_id IS NULL AND votes.valid_record = 1 AND votes.question_id = ?", question.id]) | 150 | + :select => "votes.id", |
151 | + :joins => "LEFT JOIN appearances ON (votes.id = appearances.answerable_id AND answerable_type <> 'Skip')", | ||
152 | + :conditions => ["answerable_id IS NULL AND votes.valid_record = 1 AND votes.question_id = ?", question.id]) | ||
153 | puts "Question ##{question.id} has #{orphaned_votes.count} orphaned votes" | 153 | puts "Question ##{question.id} has #{orphaned_votes.count} orphaned votes" |
154 | orphaned_votes.each do |orphaned_vote_id| | 154 | orphaned_votes.each do |orphaned_vote_id| |
155 | - orphaned_vote = Vote.find(orphaned_vote_id.id) | 155 | + orphaned_vote = Vote.find(orphaned_vote_id.id) |
156 | 156 | ||
157 | # attempt to find sibling vote | 157 | # attempt to find sibling vote |
158 | # sibling vote is one that is valid has the same voter and prompt, | 158 | # sibling vote is one that is valid has the same voter and prompt, |