From 0653e08efd039a5905f3fa4f6e9cef9f5d2f799c Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Mon, 20 Sep 2021 13:18:24 +0000 Subject: Add latest changes from gitlab-org/gitlab@14-3-stable-ee --- ...0823132600_remove_duplicate_dast_site_tokens.rb | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 db/post_migrate/20210823132600_remove_duplicate_dast_site_tokens.rb (limited to 'db/post_migrate/20210823132600_remove_duplicate_dast_site_tokens.rb') diff --git a/db/post_migrate/20210823132600_remove_duplicate_dast_site_tokens.rb b/db/post_migrate/20210823132600_remove_duplicate_dast_site_tokens.rb new file mode 100644 index 00000000000..35cf3b55200 --- /dev/null +++ b/db/post_migrate/20210823132600_remove_duplicate_dast_site_tokens.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +class RemoveDuplicateDastSiteTokens < ActiveRecord::Migration[6.1] + disable_ddl_transaction! + + class DastSiteToken < ApplicationRecord + self.table_name = 'dast_site_tokens' + self.inheritance_column = :_type_disabled + + scope :duplicates, -> do + all_duplicates = select(:project_id, :url) + .distinct + .group(:project_id, :url) + .having('count(*) > 1') + .pluck('array_agg(id) as ids') + + duplicate_ids = extract_duplicate_ids(all_duplicates) + + where(id: duplicate_ids) + end + + def self.extract_duplicate_ids(duplicates) + duplicates.flat_map { |ids| ids.first(ids.size - 1) } + end + end + + def up + DastSiteToken.duplicates.delete_all + end + + def down + end +end -- cgit v1.2.1