diff options
Diffstat (limited to 'db/post_migrate/20190404143330_add_unique_constraint_to_approvals_user_id_and_merge_request_id.rb')
-rw-r--r-- | db/post_migrate/20190404143330_add_unique_constraint_to_approvals_user_id_and_merge_request_id.rb | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/db/post_migrate/20190404143330_add_unique_constraint_to_approvals_user_id_and_merge_request_id.rb b/db/post_migrate/20190404143330_add_unique_constraint_to_approvals_user_id_and_merge_request_id.rb deleted file mode 100644 index dd85ebc8001..00000000000 --- a/db/post_migrate/20190404143330_add_unique_constraint_to_approvals_user_id_and_merge_request_id.rb +++ /dev/null @@ -1,39 +0,0 @@ -# frozen_string_literal: true - -class AddUniqueConstraintToApprovalsUserIdAndMergeRequestId < ActiveRecord::Migration[5.0] - include Gitlab::Database::MigrationHelpers - - DOWNTIME = false - - disable_ddl_transaction! - - def up - remove_duplicates - add_concurrent_index :approvals, [:user_id, :merge_request_id], unique: true - end - - def down - remove_concurrent_index :approvals, [:user_id, :merge_request_id] - end - - private - - def remove_duplicates - add_concurrent_index :approvals, [:user_id, :merge_request_id, :id] - - execute <<-SQL - DELETE FROM approvals - USING ( - SELECT user_id, merge_request_id, MIN(id) as min_id - FROM approvals - GROUP BY user_id, merge_request_id - HAVING COUNT(id) > 1 - ) as approvals_with_duplicates - WHERE approvals_with_duplicates.user_id = approvals.user_id - AND approvals_with_duplicates.merge_request_id = approvals.merge_request_id - AND approvals_with_duplicates.min_id <> approvals.id; - SQL - - remove_concurrent_index :approvals, [:user_id, :merge_request_id, :id] - end -end |