gitlab-org--gitlab-foss/lib/gitlab/background_migration/populate_merge_requests_lat...

34 lines
826 B
Ruby

# frozen_string_literal: true
# rubocop:disable Style/Documentation
module Gitlab
module BackgroundMigration
class PopulateMergeRequestsLatestMergeRequestDiffId
BATCH_SIZE = 1_000
class MergeRequest < ActiveRecord::Base
self.table_name = 'merge_requests'
include ::EachBatch
end
def perform(start_id, stop_id)
update = '
latest_merge_request_diff_id = (
SELECT MAX(id)
FROM merge_request_diffs
WHERE merge_requests.id = merge_request_diffs.merge_request_id
)'.squish
MergeRequest
.where(id: start_id..stop_id)
.where(latest_merge_request_diff_id: nil)
.each_batch(of: BATCH_SIZE) do |relation|
relation.update_all(update)
end
end
end
end
end