diff options
-rw-r--r-- | db/post_migrate/20180604123514_cleanup_stages_position_migration.rb | 8 | ||||
-rw-r--r-- | spec/migrations/cleanup_stages_position_migration_spec.rb | 4 |
2 files changed, 6 insertions, 6 deletions
diff --git a/db/post_migrate/20180604123514_cleanup_stages_position_migration.rb b/db/post_migrate/20180604123514_cleanup_stages_position_migration.rb index 3adff218552..c09e08b19a3 100644 --- a/db/post_migrate/20180604123514_cleanup_stages_position_migration.rb +++ b/db/post_migrate/20180604123514_cleanup_stages_position_migration.rb @@ -20,10 +20,10 @@ class CleanupStagesPositionMigration < ActiveRecord::Migration add_concurrent_index(:ci_stages, :id, where: 'position IS NULL', name: TMP_INDEX_NAME) end - Stages.where('position is NULL').each_batch(of: 500) do |batch| - range = batch.pluck('MIN(id)', 'MAX(id)').first - - Gitlab::BackgroundMigration::MigrateStageIndex.new.perform(*range) + Stages.where('position is NULL').each_batch(of: 1000) do |batch| + batch.select(:id).each do |stage| + Gitlab::BackgroundMigration::MigrateStageIndex.new.perform(stage.id, stage.id) + end end remove_concurrent_index_by_name(:ci_stages, TMP_INDEX_NAME) diff --git a/spec/migrations/cleanup_stages_position_migration_spec.rb b/spec/migrations/cleanup_stages_position_migration_spec.rb index 2f7d3e22bd7..221e2dd30dc 100644 --- a/spec/migrations/cleanup_stages_position_migration_spec.rb +++ b/spec/migrations/cleanup_stages_position_migration_spec.rb @@ -43,12 +43,12 @@ describe CleanupStagesPositionMigration, :migration, :sidekiq, :redis do stages.update_all(position: nil) end - it 'migrates stages sequentially in batches' do + it 'migrates stages sequentially for every stage' do expect(stages.all).to all(have_attributes(position: nil)) migrate! - expect(migration).to have_received(:perform).once + expect(migration).to have_received(:perform).twice end end end |