skip populating course id in migration if they are all already populated

this query is fast, because there is already an index on the column

Change-Id: Iee781570bb897001724d5753a02dbb8b03911619
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/239478
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
This commit is contained in:
Cody Cutrer 2020-06-06 00:55:49 -06:00
parent 965b18fba9
commit a69b2d18cc
1 changed files with 5 additions and 3 deletions

View File

@ -3,9 +3,11 @@ class MakeSubmissionCourseIdNotNull < ActiveRecord::Migration[5.2]
disable_ddl_transaction!
def up
Submission.find_ids_in_ranges(:batch_size => 100_000) do |start_at, end_at|
next unless Shackles.activate(:slave) { Submission.where(:id => start_at..end_at, :course_id => nil).exists? }
DataFixup::PopulateCourseIdOnSubmissions.run(start_at, end_at)
if Submission.where(course_id: nil).exists?
Submission.find_ids_in_ranges(:batch_size => 100_000) do |start_at, end_at|
next unless Shackles.activate(:slave) { Submission.where(:id => start_at..end_at, :course_id => nil).exists? }
DataFixup::PopulateCourseIdOnSubmissions.run(start_at, end_at)
end
end
change_column_null(:submissions, :course_id, false)
end