35 lines
1,005 B
Ruby
35 lines
1,005 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
# See http://doc.gitlab.com/ce/development/migration_style_guide.html
|
||
|
# for more information on how to write migrations for GitLab.
|
||
|
|
||
|
class PopulateRuleTypeOnApprovalMergeRequestRules < ActiveRecord::Migration[5.1]
|
||
|
include Gitlab::Database::MigrationHelpers
|
||
|
|
||
|
# Set this constant to true if this migration requires downtime.
|
||
|
DOWNTIME = false
|
||
|
|
||
|
disable_ddl_transaction!
|
||
|
|
||
|
class ApprovalMergeRequestRule < ActiveRecord::Base
|
||
|
include EachBatch
|
||
|
|
||
|
enum rule_types: {
|
||
|
regular: 1,
|
||
|
code_owner: 2
|
||
|
}
|
||
|
end
|
||
|
|
||
|
def up
|
||
|
# On Gitlab.com, this should update about 17k rows. Since our updates are
|
||
|
# small and we are populating prior to indexing, the overhead should be small
|
||
|
ApprovalMergeRequestRule.where(code_owner: true).each_batch do |batch|
|
||
|
batch.update_all(rule_type: ApprovalMergeRequestRule.rule_types[:code_owner])
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def down
|
||
|
# code_owner is already kept in sync with `rule_type`, so no changes are needed
|
||
|
end
|
||
|
end
|