summaryrefslogtreecommitdiff
path: root/db/post_migrate/20210910194952_update_report_type_for_existing_approval_project_rules.rb
diff options
context:
space:
mode:
Diffstat (limited to 'db/post_migrate/20210910194952_update_report_type_for_existing_approval_project_rules.rb')
-rw-r--r--db/post_migrate/20210910194952_update_report_type_for_existing_approval_project_rules.rb39
1 files changed, 39 insertions, 0 deletions
diff --git a/db/post_migrate/20210910194952_update_report_type_for_existing_approval_project_rules.rb b/db/post_migrate/20210910194952_update_report_type_for_existing_approval_project_rules.rb
new file mode 100644
index 00000000000..537c235edab
--- /dev/null
+++ b/db/post_migrate/20210910194952_update_report_type_for_existing_approval_project_rules.rb
@@ -0,0 +1,39 @@
+# frozen_string_literal: true
+
+class UpdateReportTypeForExistingApprovalProjectRules < Gitlab::Database::Migration[1.0]
+ def up
+ # 1. We only want to consider when rule_type is set to :report_approver (i.e., 2):
+ # enum rule_type: {
+ # regular: 0,
+ # code_owner: 1, # currently unused
+ # report_approver: 2,
+ # any_approver: 3
+ # }
+ # 2. Also we want to change only the folowing names and respective values:
+ # DEFAULT_NAME_FOR_LICENSE_REPORT = 'License-Check'
+ # DEFAULT_NAME_FOR_VULNERABILITY_REPORT = 'Vulnerability-Check'
+ # DEFAULT_NAME_FOR_COVERAGE = 'Coverage-Check'
+ # enum report_type: {
+ # vulnerability: 1,
+ # license_scanning: 2,
+ # code_coverage: 3
+ # }
+
+ execute <<~SQL
+ UPDATE approval_project_rules
+ SET report_type = converted_values.report_type
+ FROM
+ ( values
+ (1, 'Vulnerability-Check'),
+ (2, 'License-Check'),
+ (3, 'Coverage-Check')
+ ) AS converted_values(report_type, name)
+ WHERE approval_project_rules.name = converted_values.name
+ AND approval_project_rules.rule_type = 2;
+ SQL
+ end
+
+ def down
+ # no-op
+ end
+end