summaryrefslogtreecommitdiff
path: root/db/post_migrate/20220505174658_update_index_on_alerts_to_exclude_null_fingerprints.rb
blob: 5cffdb641d6269e012864a38c06f883da265acef (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
27
28
# frozen_string_literal: true

class UpdateIndexOnAlertsToExcludeNullFingerprints < Gitlab::Database::Migration[2.0]
  disable_ddl_transaction!

  OLD_INDEX_NAME = 'index_partial_am_alerts_on_project_id_and_fingerprint'
  NEW_INDEX_NAME = 'index_unresolved_alerts_on_project_id_and_fingerprint'

  def up
    add_concurrent_index :alert_management_alerts,
      [:project_id, :fingerprint],
      where: "fingerprint IS NOT NULL and status <> 2",
      name: NEW_INDEX_NAME,
      unique: true

    remove_concurrent_index_by_name :alert_management_alerts, OLD_INDEX_NAME
  end

  def down
    add_concurrent_index :alert_management_alerts,
      [:project_id, :fingerprint],
      where: "status <> 2",
      name: OLD_INDEX_NAME,
      unique: true

    remove_concurrent_index_by_name :alert_management_alerts, NEW_INDEX_NAME
  end
end