summaryrefslogtreecommitdiff
path: root/db/migrate/20211012134316_clean_up_migrate_merge_request_diff_commit_users.rb
blob: 443dbe37c0b21050b14835286c4892bcc283f23b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# frozen_string_literal: true

class CleanUpMigrateMergeRequestDiffCommitUsers < Gitlab::Database::Migration[1.0]
  def up
    jobs = Gitlab::Database::BackgroundMigrationJob
      .for_migration_class('MigrateMergeRequestDiffCommitUsers')
      .pending
      .to_a

    return if jobs.empty?

    say("#{jobs.length} MigrateMergeRequestDiffCommitUsers are still pending")

    # Normally we don't process background migrations in a regular migration, as
    # this could take a while to complete and thus block a deployment.
    #
    # In this case the jobs have all been processed for GitLab.com at the time
    # of writing. In addition, it's been a few releases since this migration was
    # introduced. As a result, self-hosted instances should have their
    # migrations finished a long time ago.
    #
    # For these reasons we clean up any pending jobs (just in case) before
    # deploying the code. This also allows us to immediately start using the new
    # setup only, instead of having to support both the old and new approach for
    # at least one more release.
    jobs.each do |job|
      Gitlab::BackgroundMigration::MigrateMergeRequestDiffCommitUsers
        .new
        .perform(*job.arguments)
    end
  end

  def down
  end
end