diff options
Diffstat (limited to 'db/migrate/20191204070713_change_updated_at_index_and_add_index_to_id_on_deployments.rb')
-rw-r--r-- | db/migrate/20191204070713_change_updated_at_index_and_add_index_to_id_on_deployments.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/db/migrate/20191204070713_change_updated_at_index_and_add_index_to_id_on_deployments.rb b/db/migrate/20191204070713_change_updated_at_index_and_add_index_to_id_on_deployments.rb new file mode 100644 index 00000000000..450b276e689 --- /dev/null +++ b/db/migrate/20191204070713_change_updated_at_index_and_add_index_to_id_on_deployments.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +class ChangeUpdatedAtIndexAndAddIndexToIdOnDeployments < ActiveRecord::Migration[5.2] + include Gitlab::Database::MigrationHelpers + + disable_ddl_transaction! + + DOWNTIME = false + + PROJECT_ID_INDEX_PARAMS = [[:project_id, :id], order: { id: :desc }] + OLD_UPDATED_AT_INDEX_PARAMS = [[:project_id, :updated_at]] + NEW_UPDATED_AT_INDEX_PARAMS = [[:project_id, :updated_at, :id], order: { updated_at: :desc, id: :desc }] + + def up + add_concurrent_index :deployments, *NEW_UPDATED_AT_INDEX_PARAMS + + remove_concurrent_index :deployments, *OLD_UPDATED_AT_INDEX_PARAMS + + add_concurrent_index :deployments, *PROJECT_ID_INDEX_PARAMS + end + + def down + add_concurrent_index :deployments, *OLD_UPDATED_AT_INDEX_PARAMS + + remove_concurrent_index :deployments, *NEW_UPDATED_AT_INDEX_PARAMS + + remove_concurrent_index :deployments, *PROJECT_ID_INDEX_PARAMS + end +end |