Welcome to mirror list, hosted at ThFree Co, Russian Federation.

20200526120714_change_partial_indexes_on_services.rb « migrate « db - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: a4d58cda1056d7bac53816d5d66eb21df18395b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# frozen_string_literal: true

class ChangePartialIndexesOnServices < ActiveRecord::Migration[6.0]
  include Gitlab::Database::MigrationHelpers

  # Set this constant to true if this migration requires downtime.
  DOWNTIME = false

  disable_ddl_transaction!

  def up
    add_concurrent_index :services, [:type, :instance], unique: true, where: 'instance = true', name: 'index_services_on_type_and_instance_partial'
    remove_concurrent_index_by_name :services, 'index_services_on_type_and_instance'

    add_concurrent_index :services, [:type, :template], unique: true, where: 'template = true', name: 'index_services_on_type_and_template_partial'
    remove_concurrent_index_by_name :services, 'index_services_on_type_and_template'
  end

  def down
    add_concurrent_index :services, [:type, :instance], unique: true, where: 'instance IS TRUE', name: 'index_services_on_type_and_instance'
    remove_concurrent_index_by_name :services, 'index_services_on_type_and_instance_partial'

    add_concurrent_index :services, [:type, :template], unique: true, where: 'template IS TRUE', name: 'index_services_on_type_and_template'
    remove_concurrent_index_by_name :services, 'index_services_on_type_and_template_partial'
  end
end