Class: Gitlab::BackgroundMigration::BackfillRelatedEpicLinksToIssueLinks
- Inherits:
-
BatchedMigrationJob
- Object
- BatchedMigrationJob
- Gitlab::BackgroundMigration::BackfillRelatedEpicLinksToIssueLinks
- Defined in:
- lib/gitlab/background_migration/backfill_related_epic_links_to_issue_links.rb
Direct Known Subclasses
Constant Summary
Constants inherited from BatchedMigrationJob
Gitlab::BackgroundMigration::BatchedMigrationJob::DEFAULT_FEATURE_CATEGORY
Constants included from Database::DynamicModelHelpers
Database::DynamicModelHelpers::BATCH_SIZE
Instance Method Summary collapse
Methods inherited from BatchedMigrationJob
#batch_metrics, cursor, cursor?, cursor_columns, feature_category, #filter_batch, generic_instance, #initialize, job_arguments, job_arguments_count, operation_name, scope_to
Methods included from Database::DynamicModelHelpers
#define_batchable_model, #each_batch, #each_batch_range
Constructor Details
This class inherits a constructor from Gitlab::BackgroundMigration::BatchedMigrationJob
Instance Method Details
#perform ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/gitlab/background_migration/backfill_related_epic_links_to_issue_links.rb', line 9 def perform each_sub_batch do |sub_batch| values_subquery = sub_batch.select(select_fields_to_insert_sql) values_subquery = values_subquery.joins(joins_target_and_source_epic_sql) connection.execute(<<~SQL) INSERT INTO issue_links (source_id, target_id, link_type, created_at, updated_at) #{values_subquery.to_sql} ON CONFLICT (source_id, target_id) DO UPDATE SET link_type = EXCLUDED.link_type, created_at = EXCLUDED.created_at, updated_at = EXCLUDED.updated_at SQL end end |