Files
baffle-hub/lib/tasks/events.rake
Dan Milne 6433f6c5bb Updates
2025-11-14 16:35:49 +11:00

58 lines
1.7 KiB
Ruby

# frozen_string_literal: true
namespace :events do
desc "Backfill network intelligence data for events"
task backfill_network_intelligence: :environment do
batch_size = ENV['BATCH_SIZE']&.to_i || 10_000
Event.backfill_network_intelligence!(batch_size: batch_size)
end
desc "Backfill events with missing network intelligence (newly imported network data)"
task backfill_missing: :environment do
count = Event.where(country: nil).count
if count.zero?
puts "✓ No events missing network intelligence"
else
puts "Found #{count} events without network intelligence"
puts "Backfilling..."
processed = 0
Event.where(country: nil).find_in_batches(batch_size: 1000) do |batch|
batch.each(&:save)
processed += batch.size
puts " Processed #{processed}/#{count}"
end
puts "✓ Complete"
end
end
desc "Show backfill progress"
task backfill_progress: :environment do
total = Event.count
with_country = Event.where.not(country: nil).count
without_country = Event.where(country: nil).count
percent = (with_country.to_f / total * 100).round(1)
puts "=" * 60
puts "Network Intelligence Backfill Progress"
puts "=" * 60
puts "Total events: #{total}"
puts "With network data: #{with_country} (#{percent}%)"
puts "Missing network data: #{without_country}"
puts "=" * 60
if without_country > 0
puts
puts "To continue backfill:"
puts " rails events:backfill_network_intelligence"
puts
puts "Or with custom batch size:"
puts " BATCH_SIZE=5000 rails events:backfill_network_intelligence"
else
puts "✓ Backfill complete!"
end
end
end