2021-03-30 06:09:22 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2020-04-20 10:05:15 +08:00
|
|
|
class MakeSubmissionCourseIdNotNull < ActiveRecord::Migration[5.2]
|
|
|
|
tag :predeploy
|
|
|
|
disable_ddl_transaction!
|
|
|
|
|
|
|
|
def up
|
2020-06-06 14:55:49 +08:00
|
|
|
if Submission.where(course_id: nil).exists?
|
|
|
|
Submission.find_ids_in_ranges(:batch_size => 100_000) do |start_at, end_at|
|
2020-10-06 06:42:27 +08:00
|
|
|
next unless GuardRail.activate(:secondary) { Submission.where(:id => start_at..end_at, :course_id => nil).exists? }
|
2021-09-22 05:31:17 +08:00
|
|
|
|
2020-06-06 14:55:49 +08:00
|
|
|
DataFixup::PopulateCourseIdOnSubmissions.run(start_at, end_at)
|
|
|
|
end
|
2020-04-20 10:05:15 +08:00
|
|
|
end
|
|
|
|
change_column_null(:submissions, :course_id, false)
|
|
|
|
end
|
|
|
|
|
|
|
|
def down
|
|
|
|
change_column_null(:submissions, :course_id, true)
|
|
|
|
end
|
|
|
|
end
|