23 lines
737 B
Ruby
23 lines
737 B
Ruby
# frozen_string_literal: true
|
|
|
|
class ChangeIndexUsersOnPublicEmail < Gitlab::Database::Migration[1.0]
|
|
INDEX_NAME = 'index_users_on_public_email'
|
|
INDEX_EXCLUDING_NULL_NAME = 'index_users_on_public_email_excluding_null_and_empty'
|
|
|
|
disable_ddl_transaction!
|
|
|
|
def up
|
|
index_condition = "public_email != '' AND public_email IS NOT NULL"
|
|
|
|
add_concurrent_index :users, [:public_email], where: index_condition, name: INDEX_EXCLUDING_NULL_NAME
|
|
remove_concurrent_index_by_name :users, INDEX_NAME
|
|
end
|
|
|
|
def down
|
|
index_condition = "public_email != ''"
|
|
|
|
add_concurrent_index :users, [:public_email], where: index_condition, name: INDEX_NAME
|
|
remove_concurrent_index_by_name :users, INDEX_EXCLUDING_NULL_NAME
|
|
end
|
|
end
|