Commit 320229e1 authored by Grzegorz Bizon's avatar Grzegorz Bizon

Do not schedule bg migration when it is not needed

parent c467451e
...@@ -17,7 +17,7 @@ class MigrateStageIdReferenceInBackground < ActiveRecord::Migration ...@@ -17,7 +17,7 @@ class MigrateStageIdReferenceInBackground < ActiveRecord::Migration
# It will take around 3 days to process 20M ci_builds. # It will take around 3 days to process 20M ci_builds.
# #
def up def up
Build.all.each_batch(of: BATCH_SIZE) do |relation, index| Build.where(stage_id: nil).each_batch(of: BATCH_SIZE) do |relation, index|
relation.each_batch(of: RANGE_SIZE) do |relation| relation.each_batch(of: RANGE_SIZE) do |relation|
range = relation.pluck('MIN(id)', 'MAX(id)').first range = relation.pluck('MIN(id)', 'MAX(id)').first
......
...@@ -51,8 +51,7 @@ describe MigrateStageIdReferenceInBackground, :migration, :sidekiq do ...@@ -51,8 +51,7 @@ describe MigrateStageIdReferenceInBackground, :migration, :sidekiq do
expect(described_class::MIGRATION).to be_scheduled_migration(2.minutes, 1, 2) expect(described_class::MIGRATION).to be_scheduled_migration(2.minutes, 1, 2)
expect(described_class::MIGRATION).to be_scheduled_migration(2.minutes, 3, 3) expect(described_class::MIGRATION).to be_scheduled_migration(2.minutes, 3, 3)
expect(described_class::MIGRATION).to be_scheduled_migration(4.minutes, 4, 5) expect(described_class::MIGRATION).to be_scheduled_migration(4.minutes, 4, 5)
expect(described_class::MIGRATION).to be_scheduled_migration(4.minutes, 6, 6) expect(BackgroundMigrationWorker.jobs.size).to eq 3
expect(BackgroundMigrationWorker.jobs.size).to eq 4
end end
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment