Commit ed1503eff6a94b745c1f11bf4cc223c906d56823
1 parent
f44412f0
Exists in
master
and in
1 other branch
add find ambiguous times task
Showing
1 changed file
with
26 additions
and
0 deletions
Show diff stats
lib/tasks/prune_db.rake
| 1 | namespace :prune_db do | 1 | namespace :prune_db do |
| 2 | 2 | ||
| 3 | + desc "Finds ambiguous times due to daylight savings time" | ||
| 4 | + task :find_ambiguous_times => :environment do | ||
| 5 | + datetime_fields = { | ||
| 6 | + :appearances => ['created_at', 'updated_at'], | ||
| 7 | + :choices => ['created_at', 'updated_at'], | ||
| 8 | + :clicks => ['created_at', 'updated_at'], | ||
| 9 | + :densities => ['created_at', 'updated_at'], | ||
| 10 | + :flags => ['created_at', 'updated_at'], | ||
| 11 | + :prompts => ['created_at', 'updated_at'], | ||
| 12 | + :skips => ['created_at', 'updated_at'], | ||
| 13 | + :votes => ['created_at', 'updated_at'], | ||
| 14 | + :visitors => ['created_at', 'updated_at'], | ||
| 15 | + :users => ['created_at', 'updated_at'], | ||
| 16 | + :questions => ['created_at', 'updated_at'], | ||
| 17 | + :question_versions => ['created_at', 'updated_at'], | ||
| 18 | + :delayed_jobs => ['created_at', 'updated_at', 'run_at', 'locked_at', 'failed_at'], | ||
| 19 | + } | ||
| 20 | + datetime_fields.each do |table, columns| | ||
| 21 | + where = columns.map{|c| "((#{c} > '2010-11-07 00:59:59' AND #{c} < '2010-11-07 02:00:00') OR (#{c} > '2011-11-06 00:59:59' AND #{c} < '2011-11-06 02:00:00'))"}.join(" OR ") | ||
| 22 | + rows = ActiveRecord::Base.connection.select_all( | ||
| 23 | + "SELECT id, #{columns.join(", ")} FROM #{table} WHERE #{where}" | ||
| 24 | + ) | ||
| 25 | + puts rows.inspect if rows.length > 0 | ||
| 26 | + end | ||
| 27 | + end | ||
| 28 | + | ||
| 3 | desc "Converts all dates from PT to UTC" | 29 | desc "Converts all dates from PT to UTC" |
| 4 | task :convert_dates_to_utc => :environment do | 30 | task :convert_dates_to_utc => :environment do |
| 5 | time_spans = [ | 31 | time_spans = [ |