summaryrefslogtreecommitdiff
path: root/db/post_migrate/20230221214519_remove_incorrectly_onboarded_namespaces_from_onboarding_progress.rb
blob: 5672fc428513414ff4b2d5399070b779f657d65c (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
# frozen_string_literal: true

class RemoveIncorrectlyOnboardedNamespacesFromOnboardingProgress < Gitlab::Database::Migration[2.1]
  disable_ddl_transaction!
  restrict_gitlab_migration gitlab_schema: :gitlab_main

  class OnboardingProgress < MigrationRecord
    include EachBatch

    self.table_name = 'onboarding_progresses'
  end

  class Project < MigrationRecord
    self.table_name = 'projects'
  end

  def up
    names = ['Learn GitLab', 'Learn GitLab - Ultimate trial']

    OnboardingProgress.each_batch(of: 500) do |batch|
      namespaces_to_keep = Project.where(name: names, namespace_id: batch.select(:namespace_id)).select(:namespace_id)
      batch.where.not(namespace_id: namespaces_to_keep).delete_all
    end
  end

  def down
    # no op
  end
end