20170919211300_remove_temporary_ci_builds_index.rb 1.01 KB
Newer Older
1 2 3
# See http://doc.gitlab.com/ce/development/migration_style_guide.html
# for more information on how to write migrations for GitLab.

4
class RemoveTemporaryCiBuildsIndex < ActiveRecord::Migration[4.2]
5 6 7 8 9 10 11 12 13 14
  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')
15

16 17 18 19 20 21 22 23 24 25 26 27 28
    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