Simplify stage_id migration as we now use relations

This commit is contained in:
Grzegorz Bizon 2017-07-07 15:52:45 +02:00
parent 320229e12a
commit 2719b2f0a1

View file

@ -2,19 +2,14 @@ module Gitlab
module BackgroundMigration
class MigrateBuildStageIdReference
def perform(start_id, stop_id)
scope = if stop_id.to_i.nonzero?
"ci_builds.id BETWEEN #{start_id.to_i} AND #{stop_id.to_i}"
else
"ci_builds.id >= #{start_id.to_i}"
end
sql = <<-SQL.strip_heredoc
UPDATE "ci_builds"
SET "stage_id" =
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 #{scope} AND "ci_builds"."stage_id" IS NULL
WHERE ci_builds.id BETWEEN #{start_id.to_i} AND #{stop_id.to_i}
AND ci_builds.stage_id IS NULL
SQL
ActiveRecord::Base.connection.execute(sql)