Improve readability of build stage id migration query

This commit is contained in:
Grzegorz Bizon 2017-06-29 15:26:47 +02:00
parent 01128b130b
commit d953f1762e
2 changed files with 9 additions and 8 deletions

View File

@ -5,12 +5,13 @@ module Gitlab
raise ArgumentError unless id.present?
sql = <<-SQL.strip_heredoc
UPDATE "ci_builds" SET "stage_id" = (
SELECT id FROM ci_stages
WHERE ci_stages.pipeline_id = ci_builds.commit_id
AND ci_stages.name = ci_builds.stage
)
WHERE "ci_builds"."id" = #{id} AND "ci_builds"."stage_id" IS NULL
UPDATE "ci_builds"
SET "stage_id" =
(SELECT id FROM ci_stages
WHERE ci_stages.pipeline_id = ci_builds.commit_id
AND ci_stages.name = ci_builds.stage)
WHERE "ci_builds"."id" = #{id}
AND "ci_builds"."stage_id" IS NULL
SQL
ActiveRecord::Base.connection.execute(sql)

View File

@ -58,11 +58,11 @@ describe MigrateStageIdReferenceInBackground, :migration, :sidekiq do
it 'schedules background migrations' do
Sidekiq::Testing.inline! do
expect(jobs.where(stage_id: nil)).to be_present
expect(jobs.where(stage_id: nil).count).to eq 5
migrate!
expect(jobs.where(stage_id: nil)).to be_one
expect(jobs.where(stage_id: nil).count).to eq 1
end
end
end