diff options
Diffstat (limited to 'db/post_migrate/20200901212304_drop_code_owner_column_from_approval_merge_request_rule.rb')
-rw-r--r-- | db/post_migrate/20200901212304_drop_code_owner_column_from_approval_merge_request_rule.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/db/post_migrate/20200901212304_drop_code_owner_column_from_approval_merge_request_rule.rb b/db/post_migrate/20200901212304_drop_code_owner_column_from_approval_merge_request_rule.rb new file mode 100644 index 00000000000..7524ae8e15b --- /dev/null +++ b/db/post_migrate/20200901212304_drop_code_owner_column_from_approval_merge_request_rule.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +class DropCodeOwnerColumnFromApprovalMergeRequestRule < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + disable_ddl_transaction! + + def up + with_lock_retries do + remove_column :approval_merge_request_rules, :code_owner + end + end + + def down + unless column_exists?(:approval_merge_request_rules, :code_owner) + with_lock_retries do + add_column :approval_merge_request_rules, :code_owner, :boolean, default: false, null: false + end + end + + add_concurrent_index( + :approval_merge_request_rules, + [:merge_request_id, :code_owner, :name], + unique: true, + where: "code_owner = true AND section IS NULL", + name: "approval_rule_name_index_for_code_owners" + ) + + add_concurrent_index( + :approval_merge_request_rules, + [:merge_request_id, :code_owner], + name: "index_approval_merge_request_rules_1" + ) + end +end |