docbrown/lib/tasks/data_updates.rake
Michael Kohl 4b62bb75d4
[15 minute fix] Add data_updates:status rake task (#13653)
* Add data_updates:status rake task

* Disable AR logging
2021-05-06 10:06:32 +07:00

31 lines
1 KiB
Ruby

namespace :data_updates do
desc "Enqueue Sidekiq worker to handle data updates"
task enqueue_data_update_worker: :environment do
if Rails.env.development?
Rake::Task["data_updates:run"].execute
else
# Ensure new code has been deployed before we run our update scripts
DataUpdateWorker.perform_in(10.minutes)
end
end
desc "Run data updates"
task run: :environment do
DataUpdateWorker.new.perform
end
desc "Get data update status"
task status: :environment do
# Disable ActiveRecord logging for this task.
# See: https://github.com/forem/forem/pull/13653#discussion_r626278422
ActiveRecord::Base.logger = nil
# rubocop:disable Style/FormatStringToken
puts format(" %-9s %-14s %-40s", "Status", "ID", "Description")
puts "-" * 80
DataUpdateScript.find_each do |dus|
id, file_name = dus.file_name.split("_", 2)
puts format("%+10s %+14s %-40s", dus.status, id, file_name.tr("_", " "))
end
# rubocop:enable Style/FormatStringToken
end
end