Merge pull request #8833 from okriuchykhin/ok_SCI_12283_v3

Optimize MoveEveryOneElseAssignmentToTeamAssignments migration [SCI-12283]
This commit is contained in:
Martin Artnik 2025-08-22 15:46:27 +02:00 committed by GitHub
commit 4e4667135a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -74,7 +74,7 @@ class MoveEveryOneElseAssignmentToTeamAssignments < ActiveRecord::Migration[7.2]
end
# PET
Project.visible.preload(:experiments).find_in_batches(batch_size: 100) do |projects|
Project.visible.find_in_batches(batch_size: 10) do |projects|
projects.each do |project|
project_automatic_user_assignments = project.user_assignments.where(assigned: :automatically)
next if project_automatic_user_assignments.blank?
@ -82,8 +82,8 @@ class MoveEveryOneElseAssignmentToTeamAssignments < ActiveRecord::Migration[7.2]
user_role = project_automatic_user_assignments.first.user_role
team_assignment_values = []
project.experiments.preload(:my_modules).each do |experiment|
experiment.my_modules.each do |my_module|
Experiment.joins(:project).where(project: project).find_each do |experiment|
MyModule.joins(:experiment).where(experiment: experiment).find_each do |my_module|
team_assignment_values << new_team_assignment(project.team_id, my_module, user_role)
my_module.automatic_user_assignments.where(user_id: project_automatic_user_assignments.select(:user_id)).delete_all
end