From d97a67f0c7b16280c07ef08c8d41a7c63f46f62c Mon Sep 17 00:00:00 2001 From: Luke Baker Date: Wed, 14 Mar 2012 16:17:14 -0400 Subject: [PATCH] add unambiguator and use it --- lib/tasks/prune_db.rake | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 50 insertions(+), 4 deletions(-) diff --git a/lib/tasks/prune_db.rake b/lib/tasks/prune_db.rake index c75a6c2..f533b69 100644 --- a/lib/tasks/prune_db.rake +++ b/lib/tasks/prune_db.rake @@ -28,7 +28,7 @@ namespace :prune_db do desc "Converts all dates from PT to UTC" task :convert_dates_to_utc, [:workerid, :workers] => [:environment] do|t,args| - args.with_defaults(:workerid => 0, :workers => 1) + args.with_defaults(:workerid => "0", :workers => "1") raise "workerid can not be greater than workers" if args[:workerid] > args[:workers] time_spans = [ { :gt => "2009-11-01 01:59:59", :lt => "2010-03-14 02:00:00", :h => 8}, @@ -40,6 +40,46 @@ namespace :prune_db do { :gt => "2011-11-06 01:59:59", :lt => "2012-03-11 02:00:00", :h => 8}, { :gt => "2012-03-11 01:59:59", :lt => "2012-11-04 01:00:00", :h => 7} ] + unambiguator = { + :appearances => [ + { :range => 454229..454229, :h => 7}, + { :range => 454426..454501, :h => 7}, # 454501 updated_at needs additional hour + { :range => 454502..454745, :h => 8}, + { :range => 4005307..4005522, :h => 7 }, + { :range => 4005523..4005556, :h => 8 } + ], + :choices => [ + { :range => 181957..181957, :h => 7} # based on appearance id 8392753 + ], + :prompts => [ + { :range => 5191157..5191225, :h => 7}, + { :range => 5191226..5191876, :h => 8}, + { :range => 8392753..8392758, :h => 7}, # based on appearance id 4005361 + ], + :question_versions => [ + { :range => 7126..7128, :h => 7} # based on choice 181957 + ], + :questions => [ + { :range => 1855..1855, :h => 7} # based on question_versions 7128 + ], + :skips => [ + { :range => 30948..30952, :h => 8}, # based on vote 326681 + { :range => 365240..365276, :h => 7}, + { :range => 365277..365281, :h => 8}, + ], + :visitors => [ + { :range => 594751..594777, :h => 7}, + { :range => 594778..594795, :h => 8}, + { :range => 91350..91358, :h => 7}, + { :range => 91359..91366, :h => 8} + ], + :votes => [ + { :range => 3145774..3145926, :h => 7}, + { :range => 3145927..3145935, :h => 8}, + { :range => 326504..326571, :h => 7}, + { :range => 326572..326803, :h => 8}, + ], + } # UTC because Rails will be thinking DB is in UTC when we run this #time_spans.map! do |t| # { :gt => Time.parse("#{t[:gt]} UTC"), @@ -50,10 +90,10 @@ namespace :prune_db do #:appearances => ['created_at', 'updated_at'], #:choices => ['created_at', 'updated_at'], #:clicks => ['created_at', 'updated_at'], - :densities => ['created_at', 'updated_at'], + #:densities => ['created_at', 'updated_at'], #:flags => ['created_at', 'updated_at'], #:prompts => ['created_at', 'updated_at'], - #:skips => ['created_at', 'updated_at'], + :skips => ['created_at', 'updated_at'], #:votes => ['created_at', 'updated_at'], #:visitors => ['created_at', 'updated_at'], #:users => ['created_at', 'updated_at'], @@ -88,8 +128,14 @@ namespace :prune_db do if value < span[:lt] && value > span[:gt] # if blank then ambiguous and we don't know how to translate if span[:h].blank? - logger.info "AMBIGUOUS: #{table} #{row["id"]} #{column}: #{value}" updated_values[column] = nil + if unambiguator[table] && unambiguator[table].length > 0 + unambiguator[table].each do |ids| + updated_values[column] = ids[:h] if ids[:range].include? row["id"].to_i + end + end + + logger.info "AMBIGUOUS: #{table} #{row["id"]} #{column}: #{value}" if updated_values[column].blank? else updated_values[column] = span[:h] end -- libgit2 0.21.2