From ce71b1ce072b024802e7e4ff07486e253c24d964 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Wed, 24 Jan 2018 15:21:20 +0100 Subject: Fix removing redundant pipeline stages on MySQL --- .../20180119121225_remove_redundant_pipeline_stages.rb | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'db') diff --git a/db/post_migrate/20180119121225_remove_redundant_pipeline_stages.rb b/db/post_migrate/20180119121225_remove_redundant_pipeline_stages.rb index c1705cd8757..597f6c3ee48 100644 --- a/db/post_migrate/20180119121225_remove_redundant_pipeline_stages.rb +++ b/db/post_migrate/20180119121225_remove_redundant_pipeline_stages.rb @@ -12,12 +12,19 @@ class RemoveRedundantPipelineStages < ActiveRecord::Migration SQL execute <<~SQL - UPDATE ci_builds SET stage_id = NULL WHERE ci_builds.stage_id IN (#{redundant_stages_ids}) + UPDATE ci_builds SET stage_id = NULL WHERE stage_id IN (#{redundant_stages_ids}) SQL - execute <<~SQL - DELETE FROM ci_stages WHERE ci_stages.id IN (#{redundant_stages_ids}) - SQL + if Gitlab::Database.postgresql? + execute <<~SQL + DELETE FROM ci_stages WHERE id IN (#{redundant_stages_ids}) + SQL + else # We can't modify a table we are selecting from on MySQL + execute <<~SQL + DELETE a FROM ci_stages AS a, ci_stages AS b + WHERE a.pipeline_id = b.pipeline_id AND a.name = b.name + SQL + end end def down -- cgit v1.2.1