summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2018-06-07 14:40:06 +0200
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2018-06-07 14:41:07 +0200
commit2726c43cd4772c03f260a9d1766809404b7f345c (patch)
tree7f5ef73026cc59e5a2591d388b27c3c41372e63d
parente576ea612cee3b1d74091380cfd748d93d9c1cf0 (diff)
downloadgitlab-ce-backstage/gb/stages-position-migration-clean-up.tar.gz
Do not batch stages position clean up migrationbackstage/gb/stages-position-migration-clean-up
-rw-r--r--db/post_migrate/20180604123514_cleanup_stages_position_migration.rb8
-rw-r--r--spec/migrations/cleanup_stages_position_migration_spec.rb4
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