45 lines
2 KiB
Ruby
45 lines
2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class AddIndexesForProjectsApiAuthenticated < ActiveRecord::Migration[5.2]
|
|
include Gitlab::Database::MigrationHelpers
|
|
|
|
DOWNTIME = false
|
|
|
|
disable_ddl_transaction!
|
|
|
|
COLUMNS = %i(updated_at name)
|
|
|
|
def up
|
|
add_concurrent_index :projects, %i(created_at id), order: { id: :desc }, name: 'index_projects_api_created_at_id_desc'
|
|
|
|
add_concurrent_index :projects, %i(last_activity_at id), name: 'index_projects_on_last_activity_at_and_id'
|
|
remove_concurrent_index :projects, :last_activity_at
|
|
add_concurrent_index :projects, %i(last_activity_at id), order: { id: :desc }, name: 'index_projects_api_last_activity_at_id_desc'
|
|
|
|
add_concurrent_index :projects, %i(path id), name: 'index_projects_on_path_and_id'
|
|
remove_concurrent_index_by_name :projects, 'index_projects_on_path'
|
|
add_concurrent_index :projects, %i(path id), order: { id: :desc }, name: 'index_projects_api_path_id_desc'
|
|
|
|
COLUMNS.each do |column|
|
|
add_concurrent_index :projects, [column, :id], name: "index_projects_on_#{column}_and_id"
|
|
add_concurrent_index :projects, [column, :id], order: { id: :desc }, name: "index_projects_api_#{column}_id_desc"
|
|
end
|
|
end
|
|
|
|
def down
|
|
remove_concurrent_index_by_name :projects, 'index_projects_api_created_at_id_desc'
|
|
|
|
remove_concurrent_index_by_name :projects, 'index_projects_on_last_activity_at_and_id'
|
|
add_concurrent_index :projects, :last_activity_at, name: 'index_projects_on_last_activity_at'
|
|
remove_concurrent_index_by_name :projects, 'index_projects_api_last_activity_at_id_desc'
|
|
|
|
remove_concurrent_index_by_name :projects, 'index_projects_on_path_and_id'
|
|
add_concurrent_index :projects, :path, name: 'index_projects_on_path'
|
|
remove_concurrent_index_by_name :projects, 'index_projects_api_path_id_desc'
|
|
|
|
COLUMNS.each do |column|
|
|
remove_concurrent_index_by_name :projects, "index_projects_on_#{column}_and_id"
|
|
remove_concurrent_index_by_name :projects, "index_projects_api_#{column}_id_desc"
|
|
end
|
|
end
|
|
end
|