Commit 23b58e54 authored by Greg Stark's avatar Greg Stark Committed by Yorick Peterse

Remove an unneeded index on ci_builds left in some databases

Migration 20170919211300_remove_temporary_ci_builds_index.rb created a
temporary partial index and tried to drop it at the end of the
migration. In some circumstances apparently it failed to drop the
index and it ended up in our schema.rb.

This accidentally failed to fail due to a bug in the regular
expression for partial indexes which caused the index creation in
schema.rb to be ignored. Now that that's fixed we could be
resurrecting this zombie index from the past in some but not all
databases.

Add a migration to drop this index if it's present to reconcile this
discrepancy.
parent a7265abd
---
title: Remove an index on ci_builds meant to be only temporary
merge_request:
author:
type: other
# See http://doc.gitlab.com/ce/development/migration_style_guide.html
# for more information on how to write migrations for GitLab.
class RemoveTemporaryCiBuildsIndex < ActiveRecord::Migration
include Gitlab::Database::MigrationHelpers
# Set this constant to true if this migration requires downtime.
DOWNTIME = false
# To use create/remove index concurrently
disable_ddl_transaction!
def up
return unless index_exists?(:ci_builds, :id, name: 'index_for_ci_builds_retried_migration')
remove_concurrent_index(:ci_builds, :id, name: "index_for_ci_builds_retried_migration")
end
def down
# this was a temporary index for a migration that was never
# present previously so this probably shouldn't be here but it's
# easier to test the drop if we have a way to create it.
add_concurrent_index("ci_builds", ["id"],
name: "index_for_ci_builds_retried_migration",
where: "(retried IS NULL)",
using: :btree)
end
end
......@@ -256,7 +256,6 @@ ActiveRecord::Schema.define(version: 20170921115009) do
add_index "ci_builds", ["commit_id", "status", "type"], name: "index_ci_builds_on_commit_id_and_status_and_type", using: :btree
add_index "ci_builds", ["commit_id", "type", "name", "ref"], name: "index_ci_builds_on_commit_id_and_type_and_name_and_ref", using: :btree
add_index "ci_builds", ["commit_id", "type", "ref"], name: "index_ci_builds_on_commit_id_and_type_and_ref", using: :btree
add_index "ci_builds", ["id"], name: "index_for_ci_builds_retried_migration", where: "(retried IS NULL)", using: :btree
add_index "ci_builds", ["project_id"], name: "index_ci_builds_on_project_id", using: :btree
add_index "ci_builds", ["protected"], name: "index_ci_builds_on_protected", using: :btree
add_index "ci_builds", ["runner_id"], name: "index_ci_builds_on_runner_id", using: :btree
......
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