summaryrefslogtreecommitdiff
path: root/lib/gitlab/background_migration/batching_strategies/backfill_issue_work_item_type_batching_strategy.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/background_migration/batching_strategies/backfill_issue_work_item_type_batching_strategy.rb')
-rw-r--r--lib/gitlab/background_migration/batching_strategies/backfill_issue_work_item_type_batching_strategy.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/gitlab/background_migration/batching_strategies/backfill_issue_work_item_type_batching_strategy.rb b/lib/gitlab/background_migration/batching_strategies/backfill_issue_work_item_type_batching_strategy.rb
new file mode 100644
index 00000000000..06036eebcb9
--- /dev/null
+++ b/lib/gitlab/background_migration/batching_strategies/backfill_issue_work_item_type_batching_strategy.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module BackgroundMigration
+ module BatchingStrategies
+ # Batching class to use for back-filling issue's work_item_type_id for a single issue type.
+ # Batches will be scoped to records where the foreign key is NULL and only of a given issue type
+ #
+ # If no more batches exist in the table, returns nil.
+ class BackfillIssueWorkItemTypeBatchingStrategy < PrimaryKeyBatchingStrategy
+ def apply_additional_filters(relation, job_arguments:)
+ issue_type = job_arguments.first
+
+ relation.where(issue_type: issue_type)
+ end
+ end
+ end
+ end
+end