Write task to migrate budget admins and valuators
If we didn't run this task, investments for existing budgets wouldn't show their administrator/valuators as an option when we're editing them, leading to data loss.
This commit is contained in:
@@ -4,4 +4,17 @@ namespace :migrations do
|
||||
ApplicationLogger.new.info "Updating valuation taggings context"
|
||||
Tagging.where(context: "valuation").update_all(context: "valuation_tags")
|
||||
end
|
||||
|
||||
desc "Migrates budget staff"
|
||||
task budget_admins_and_valuators: :environment do
|
||||
ApplicationLogger.new.info "Updating budget administrators and valuators"
|
||||
Budget.find_each do |budget|
|
||||
investments = budget.investments.with_hidden
|
||||
|
||||
budget.update!(
|
||||
administrator_ids: investments.where.not(administrator: nil).distinct.pluck(:administrator_id),
|
||||
valuator_ids: Budget::ValuatorAssignment.where(investment: investments).distinct.pluck(:valuator_id)
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user