summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2017-06-30 13:03:47 +0200
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2017-06-30 13:03:47 +0200
commit134f204ed8f5dd80e44463338ae93f3d905ca7af (patch)
treeb15e68470c282b4880567a3f828ef49f6a0830d0
parent6997dfa3426b26f7eb8f294b261827ef0b6d823b (diff)
downloadgitlab-ce-134f204ed8f5dd80e44463338ae93f3d905ca7af.tar.gz
Do not override original AR5 batching interface
-rw-r--r--config/initializers/ar5_batching.rb4
-rw-r--r--db/post_migrate/20170628080858_migrate_stage_id_reference_in_background.rb7
2 files changed, 7 insertions, 4 deletions
diff --git a/config/initializers/ar5_batching.rb b/config/initializers/ar5_batching.rb
index 31efef83a6f..35e8b3808e2 100644
--- a/config/initializers/ar5_batching.rb
+++ b/config/initializers/ar5_batching.rb
@@ -15,7 +15,7 @@ module ActiveRecord
relation = relation.where(arel_table[primary_key].lteq(finish)) if finish
batch_relation = relation
- 1.step do |index|
+ loop do
if load
records = batch_relation.records
ids = records.map(&:id)
@@ -31,7 +31,7 @@ module ActiveRecord
primary_key_offset = ids.last
raise ArgumentError.new("Primary key not included in the custom select clause") unless primary_key_offset
- yield yielded_relation, index
+ yield yielded_relation
break if ids.length < of
batch_relation = relation.where(arel_table[primary_key].gt(primary_key_offset))
diff --git a/db/post_migrate/20170628080858_migrate_stage_id_reference_in_background.rb b/db/post_migrate/20170628080858_migrate_stage_id_reference_in_background.rb
index 1d95fc62c87..30849ea1361 100644
--- a/db/post_migrate/20170628080858_migrate_stage_id_reference_in_background.rb
+++ b/db/post_migrate/20170628080858_migrate_stage_id_reference_in_background.rb
@@ -12,9 +12,12 @@ class MigrateStageIdReferenceInBackground < ActiveRecord::Migration
end
def up
- Build.where(stage_id: nil).in_batches(of: BATCH_SIZE) do |relation, index|
- schedule = index * 5.minutes
+ index = 1
+
+ Build.where(stage_id: nil).in_batches(of: BATCH_SIZE) do |relation|
jobs = relation.pluck(:id).map { |id| [MIGRATION, [id]] }
+ schedule = index * 5.minutes
+ index += 1
BackgroundMigrationWorker.perform_bulk_in(schedule, jobs)
end