From e14582b20a3c3206719470f885bb326c4987bc79 Mon Sep 17 00:00:00 2001 From: anarinesingh Date: Mon, 14 Apr 2025 14:55:39 -0400 Subject: [PATCH 01/13] Add constraint to vulnerability_statistics Makes sure traversal_ids is present and not empty --- ..._vulnerability_statistics_traversal_ids.rb | 23 +++++++++++++++++++ db/schema_migrations/20250414183417 | 1 + db/structure.sql | 1 + ee/app/models/vulnerabilities/statistic.rb | 1 + 4 files changed, 26 insertions(+) create mode 100644 db/migrate/20250414183417_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb create mode 100644 db/schema_migrations/20250414183417 diff --git a/db/migrate/20250414183417_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb b/db/migrate/20250414183417_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb new file mode 100644 index 00000000000000..b50759b530c239 --- /dev/null +++ b/db/migrate/20250414183417_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +class AddNotEmptyConstraintToVulnerabilityStatisticsTraversalIds < Gitlab::Database::Migration[2.2] + disable_ddl_transaction! + milestone '18.0' + + CONSTRAINT_NAME = 'check_vulnerability_statistics_traversal_ids_not_empty' + + def up + add_check_constraint( + :vulnerability_statistics, + 'cardinality(traversal_ids) > 0', + CONSTRAINT_NAME + ) + end + + def down + remove_check_constraint( + :vulnerability_statistics, + CONSTRAINT_NAME + ) + end +end diff --git a/db/schema_migrations/20250414183417 b/db/schema_migrations/20250414183417 new file mode 100644 index 00000000000000..e6e834af658549 --- /dev/null +++ b/db/schema_migrations/20250414183417 @@ -0,0 +1 @@ +d0730718dab5ad5954011326aa9adab3c03b2f3a68553853eb852e02dd1f6ba8 \ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index b5bdd311d8bfe2..172653af63be53 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -28772,6 +28772,7 @@ CREATE TABLE vulnerability_statistics ( age_sum_of_squares double precision DEFAULT 0.0 NOT NULL, risk_score double precision DEFAULT 0.0 NOT NULL, security_project_tracked_context_id bigint + CONSTRAINT check_vulnerability_statistics_traversal_ids_not_empty CHECK ((cardinality(traversal_ids) > 0)) ); CREATE SEQUENCE vulnerability_statistics_id_seq diff --git a/ee/app/models/vulnerabilities/statistic.rb b/ee/app/models/vulnerabilities/statistic.rb index 71ba18f5ccbdae..4c710316cee013 100644 --- a/ee/app/models/vulnerabilities/statistic.rb +++ b/ee/app/models/vulnerabilities/statistic.rb @@ -36,6 +36,7 @@ class Statistic < ::SecApplicationRecord validates :low, numericality: { greater_than_or_equal_to: 0 } validates :unknown, numericality: { greater_than_or_equal_to: 0 } validates :info, numericality: { greater_than_or_equal_to: 0 } + validates :traversal_ids, presence: true, length: { minimum: 1 } before_save :assign_letter_grade -- GitLab From fcbfab49999d63c602d70f1bdb89649080a3142f Mon Sep 17 00:00:00 2001 From: anarinesingh Date: Tue, 15 Apr 2025 17:17:41 -0400 Subject: [PATCH 02/13] Edit statistic spec validations --- ee/spec/models/vulnerabilities/statistic_spec.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ee/spec/models/vulnerabilities/statistic_spec.rb b/ee/spec/models/vulnerabilities/statistic_spec.rb index 1cc1752c97c584..e7a1fe36dfff11 100644 --- a/ee/spec/models/vulnerabilities/statistic_spec.rb +++ b/ee/spec/models/vulnerabilities/statistic_spec.rb @@ -16,6 +16,9 @@ it { is_expected.to validate_numericality_of(:low).is_greater_than_or_equal_to(0) } it { is_expected.to validate_numericality_of(:unknown).is_greater_than_or_equal_to(0) } it { is_expected.to validate_numericality_of(:info).is_greater_than_or_equal_to(0) } + it { is_expected.to validate_presence_of(:traversal_ids) } + it { is_expected.to validate_length_of(:traversal_ids).is_at_least(1) } + it { is_expected.to define_enum_for(:letter_grade).with_values(%i[a b c d f]) } end -- GitLab From 089c948398463c0d8aea4646d45bd5123127b02b Mon Sep 17 00:00:00 2001 From: anarinesingh Date: Tue, 22 Apr 2025 08:58:56 -0400 Subject: [PATCH 03/13] Update timestamp for migration --- ...mpty_constraint_to_vulnerability_statistics_traversal_ids.rb} | 0 db/schema_migrations/20250414183417 | 1 - db/schema_migrations/20250422125738 | 1 + 3 files changed, 1 insertion(+), 1 deletion(-) rename db/migrate/{20250414183417_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb => 20250422125738_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb} (100%) delete mode 100644 db/schema_migrations/20250414183417 create mode 100644 db/schema_migrations/20250422125738 diff --git a/db/migrate/20250414183417_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb b/db/migrate/20250422125738_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb similarity index 100% rename from db/migrate/20250414183417_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb rename to db/migrate/20250422125738_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb diff --git a/db/schema_migrations/20250414183417 b/db/schema_migrations/20250414183417 deleted file mode 100644 index e6e834af658549..00000000000000 --- a/db/schema_migrations/20250414183417 +++ /dev/null @@ -1 +0,0 @@ -d0730718dab5ad5954011326aa9adab3c03b2f3a68553853eb852e02dd1f6ba8 \ No newline at end of file diff --git a/db/schema_migrations/20250422125738 b/db/schema_migrations/20250422125738 new file mode 100644 index 00000000000000..c7bd12faeb17e0 --- /dev/null +++ b/db/schema_migrations/20250422125738 @@ -0,0 +1 @@ +9445b8e2aec01d0382985a9889ba2d44dc2edead01d2b4d9e8fa4036a2d1f766 \ No newline at end of file -- GitLab From c342272134735d9428683b996788f1efcdedc1b5 Mon Sep 17 00:00:00 2001 From: anarinesingh Date: Tue, 22 Apr 2025 09:06:28 -0400 Subject: [PATCH 04/13] Add schema restriction to migration --- ...empty_constraint_to_vulnerability_statistics_traversal_ids.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/db/migrate/20250422125738_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb b/db/migrate/20250422125738_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb index b50759b530c239..dac0a05a7ad304 100644 --- a/db/migrate/20250422125738_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb +++ b/db/migrate/20250422125738_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb @@ -3,6 +3,7 @@ class AddNotEmptyConstraintToVulnerabilityStatisticsTraversalIds < Gitlab::Database::Migration[2.2] disable_ddl_transaction! milestone '18.0' + restrict_gitlab_migration gitlab_schema: :gitlab_sec CONSTRAINT_NAME = 'check_vulnerability_statistics_traversal_ids_not_empty' -- GitLab From 60cc9cce4be63e5fd3f7e45fa5b1dab53e8bc427 Mon Sep 17 00:00:00 2001 From: anarinesingh Date: Tue, 29 Apr 2025 00:49:25 -0400 Subject: [PATCH 05/13] Remove db restriction from migration --- ...empty_constraint_to_vulnerability_statistics_traversal_ids.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/db/migrate/20250422125738_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb b/db/migrate/20250422125738_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb index dac0a05a7ad304..b50759b530c239 100644 --- a/db/migrate/20250422125738_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb +++ b/db/migrate/20250422125738_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb @@ -3,7 +3,6 @@ class AddNotEmptyConstraintToVulnerabilityStatisticsTraversalIds < Gitlab::Database::Migration[2.2] disable_ddl_transaction! milestone '18.0' - restrict_gitlab_migration gitlab_schema: :gitlab_sec CONSTRAINT_NAME = 'check_vulnerability_statistics_traversal_ids_not_empty' -- GitLab From a07511fc216819026bcb1d4228c5c8cc51188fa6 Mon Sep 17 00:00:00 2001 From: anarinesingh Date: Fri, 9 May 2025 11:55:21 -0400 Subject: [PATCH 06/13] Ensure default traversal_ids value is not empty --- ee/spec/factories/vulnerabilities/statistics.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ee/spec/factories/vulnerabilities/statistics.rb b/ee/spec/factories/vulnerabilities/statistics.rb index bceb246ff12f6e..c3996512a311ee 100644 --- a/ee/spec/factories/vulnerabilities/statistics.rb +++ b/ee/spec/factories/vulnerabilities/statistics.rb @@ -7,7 +7,8 @@ after(:build) do |vulnerability_statistic, _| vulnerability_statistic.archived = vulnerability_statistic.project&.archived - vulnerability_statistic.traversal_ids = vulnerability_statistic.project&.namespace&.traversal_ids + vulnerability_statistic.traversal_ids = vulnerability_statistic.project&.namespace&.traversal_ids.presence || + [vulnerability_statistic&.project&.namespace_id] vulnerability_statistic.total = [ vulnerability_statistic.low, vulnerability_statistic.medium, -- GitLab From 2b311199161bdcd633ee5e32aaf0379c075db6a4 Mon Sep 17 00:00:00 2001 From: anarinesingh Date: Fri, 9 May 2025 12:55:44 -0400 Subject: [PATCH 07/13] Include traversal_ids in migration spec --- ...hived_and_traversal_ids_to_vulnerability_statistics_spec.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spec/lib/gitlab/background_migration/backfill_archived_and_traversal_ids_to_vulnerability_statistics_spec.rb b/spec/lib/gitlab/background_migration/backfill_archived_and_traversal_ids_to_vulnerability_statistics_spec.rb index e2a4a0613c6733..9017804fa51ed5 100644 --- a/spec/lib/gitlab/background_migration/backfill_archived_and_traversal_ids_to_vulnerability_statistics_spec.rb +++ b/spec/lib/gitlab/background_migration/backfill_archived_and_traversal_ids_to_vulnerability_statistics_spec.rb @@ -63,6 +63,8 @@ end def create_vulnerability_statistic(project_id:) + project = Project.find(project_id) + vulnerability_statistics.create!( project_id: project_id, total: 0, @@ -74,6 +76,7 @@ def create_vulnerability_statistic(project_id:) info: 0, letter_grade: 0, created_at: Time.current, + traversal_ids: project.namespace.traversal_ids, updated_at: Time.current ) end -- GitLab From f3b87f292fd63d38aeaabca5e7282459115bb26c Mon Sep 17 00:00:00 2001 From: Adrien Narinesingh Date: Mon, 12 May 2025 03:24:26 -0400 Subject: [PATCH 08/13] Apply 1 suggestion(s) to 1 file(s) Co-authored-by: Bojan Marjanovic --- ...mpty_constraint_to_vulnerability_statistics_traversal_ids.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/migrate/20250422125738_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb b/db/migrate/20250422125738_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb index b50759b530c239..3b026256fc97ad 100644 --- a/db/migrate/20250422125738_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb +++ b/db/migrate/20250422125738_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb @@ -2,7 +2,7 @@ class AddNotEmptyConstraintToVulnerabilityStatisticsTraversalIds < Gitlab::Database::Migration[2.2] disable_ddl_transaction! - milestone '18.0' + milestone '18.1' CONSTRAINT_NAME = 'check_vulnerability_statistics_traversal_ids_not_empty' -- GitLab From 1be31d9dd7775634be3ffc6de57c16d9d0fce810 Mon Sep 17 00:00:00 2001 From: anarinesingh Date: Mon, 12 May 2025 15:25:32 -0400 Subject: [PATCH 09/13] Remove projecy query from migration spec --- ..._and_traversal_ids_to_vulnerability_statistics_spec.rb | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/spec/lib/gitlab/background_migration/backfill_archived_and_traversal_ids_to_vulnerability_statistics_spec.rb b/spec/lib/gitlab/background_migration/backfill_archived_and_traversal_ids_to_vulnerability_statistics_spec.rb index 9017804fa51ed5..235c3a08063880 100644 --- a/spec/lib/gitlab/background_migration/backfill_archived_and_traversal_ids_to_vulnerability_statistics_spec.rb +++ b/spec/lib/gitlab/background_migration/backfill_archived_and_traversal_ids_to_vulnerability_statistics_spec.rb @@ -46,7 +46,7 @@ before do [project, other_project].each do |p| - create_vulnerability_statistic(project_id: p.id) + create_vulnerability_statistic(project: p) end end @@ -62,11 +62,9 @@ end end - def create_vulnerability_statistic(project_id:) - project = Project.find(project_id) - + def create_vulnerability_statistic(project:) vulnerability_statistics.create!( - project_id: project_id, + project_id: project.id, total: 0, critical: 0, high: 0, -- GitLab From 6925be59d38d2b70c9a85e889cb9bebb82fc588b Mon Sep 17 00:00:00 2001 From: anarinesingh Date: Mon, 12 May 2025 16:34:38 -0400 Subject: [PATCH 10/13] Add in namespace query --- ...hived_and_traversal_ids_to_vulnerability_statistics_spec.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spec/lib/gitlab/background_migration/backfill_archived_and_traversal_ids_to_vulnerability_statistics_spec.rb b/spec/lib/gitlab/background_migration/backfill_archived_and_traversal_ids_to_vulnerability_statistics_spec.rb index 235c3a08063880..0ced0812cd6267 100644 --- a/spec/lib/gitlab/background_migration/backfill_archived_and_traversal_ids_to_vulnerability_statistics_spec.rb +++ b/spec/lib/gitlab/background_migration/backfill_archived_and_traversal_ids_to_vulnerability_statistics_spec.rb @@ -63,6 +63,7 @@ end def create_vulnerability_statistic(project:) + namespace = namespaces.find(project.namespace_id) vulnerability_statistics.create!( project_id: project.id, total: 0, @@ -74,7 +75,7 @@ def create_vulnerability_statistic(project:) info: 0, letter_grade: 0, created_at: Time.current, - traversal_ids: project.namespace.traversal_ids, + traversal_ids: namespace.traversal_ids, updated_at: Time.current ) end -- GitLab From 3be66b7e7158f234cf0df251eba5bf771bf46cce Mon Sep 17 00:00:00 2001 From: anarinesingh Date: Mon, 12 May 2025 23:28:48 -0400 Subject: [PATCH 11/13] Change how factory sets traversal_ids --- ee/spec/factories/vulnerabilities/statistics.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ee/spec/factories/vulnerabilities/statistics.rb b/ee/spec/factories/vulnerabilities/statistics.rb index c3996512a311ee..e9fe1154ad242c 100644 --- a/ee/spec/factories/vulnerabilities/statistics.rb +++ b/ee/spec/factories/vulnerabilities/statistics.rb @@ -3,12 +3,11 @@ FactoryBot.define do factory :vulnerability_statistic, class: 'Vulnerabilities::Statistic' do project + traversal_ids { project.namespace.traversal_ids } initialize_with { Vulnerabilities::Statistic.find_or_initialize_by(project_id: project.id) } after(:build) do |vulnerability_statistic, _| vulnerability_statistic.archived = vulnerability_statistic.project&.archived - vulnerability_statistic.traversal_ids = vulnerability_statistic.project&.namespace&.traversal_ids.presence || - [vulnerability_statistic&.project&.namespace_id] vulnerability_statistic.total = [ vulnerability_statistic.low, vulnerability_statistic.medium, -- GitLab From 9053b3391120af306a59c073273d4658b51ae3c7 Mon Sep 17 00:00:00 2001 From: anarinesingh Date: Wed, 17 Sep 2025 03:15:24 -0400 Subject: [PATCH 12/13] Update files to match current milestone and changes --- ...y_constraint_to_vulnerability_statistics_traversal_ids.rb} | 4 ++-- db/schema_migrations/20250422125738 | 1 - db/schema_migrations/20250917102005 | 1 + db/structure.sql | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) rename db/migrate/{20250422125738_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb => 20250917102005_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb} (89%) delete mode 100644 db/schema_migrations/20250422125738 create mode 100644 db/schema_migrations/20250917102005 diff --git a/db/migrate/20250422125738_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb b/db/migrate/20250917102005_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb similarity index 89% rename from db/migrate/20250422125738_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb rename to db/migrate/20250917102005_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb index 3b026256fc97ad..91b9da98c4ce78 100644 --- a/db/migrate/20250422125738_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb +++ b/db/migrate/20250917102005_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb @@ -1,8 +1,8 @@ # frozen_string_literal: true -class AddNotEmptyConstraintToVulnerabilityStatisticsTraversalIds < Gitlab::Database::Migration[2.2] +class AddNotEmptyConstraintToVulnerabilityStatisticsTraversalIds < Gitlab::Database::Migration[2.3] disable_ddl_transaction! - milestone '18.1' + milestone '18.5' CONSTRAINT_NAME = 'check_vulnerability_statistics_traversal_ids_not_empty' diff --git a/db/schema_migrations/20250422125738 b/db/schema_migrations/20250422125738 deleted file mode 100644 index c7bd12faeb17e0..00000000000000 --- a/db/schema_migrations/20250422125738 +++ /dev/null @@ -1 +0,0 @@ -9445b8e2aec01d0382985a9889ba2d44dc2edead01d2b4d9e8fa4036a2d1f766 \ No newline at end of file diff --git a/db/schema_migrations/20250917102005 b/db/schema_migrations/20250917102005 new file mode 100644 index 00000000000000..d6adfaeb806fbf --- /dev/null +++ b/db/schema_migrations/20250917102005 @@ -0,0 +1 @@ +9b9c1ac3a227c8718ecc54c8cd4561a7b9e4554335064c99e5cccd365db178c6 \ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index 172653af63be53..3fc6239f31d85e 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -28771,7 +28771,7 @@ CREATE TABLE vulnerability_statistics ( age_mean double precision DEFAULT 0.0 NOT NULL, age_sum_of_squares double precision DEFAULT 0.0 NOT NULL, risk_score double precision DEFAULT 0.0 NOT NULL, - security_project_tracked_context_id bigint + security_project_tracked_context_id bigint, CONSTRAINT check_vulnerability_statistics_traversal_ids_not_empty CHECK ((cardinality(traversal_ids) > 0)) ); -- GitLab From 889bfb0340ad41505f41ea8f7fcd0b41a0ea9d33 Mon Sep 17 00:00:00 2001 From: anarinesingh Date: Wed, 22 Oct 2025 00:44:30 -0400 Subject: [PATCH 13/13] Update constraint to be NOT_VALID --- ...straint_to_vulnerability_statistics_traversal_ids.rb} | 9 ++++----- db/schema_migrations/20250917102005 | 1 - db/schema_migrations/20251022005737 | 1 + db/structure.sql | 6 ++++-- 4 files changed, 9 insertions(+), 8 deletions(-) rename db/migrate/{20250917102005_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb => 20251022005737_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb} (68%) delete mode 100644 db/schema_migrations/20250917102005 create mode 100644 db/schema_migrations/20251022005737 diff --git a/db/migrate/20250917102005_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb b/db/migrate/20251022005737_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb similarity index 68% rename from db/migrate/20250917102005_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb rename to db/migrate/20251022005737_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb index 91b9da98c4ce78..8f020710afcedc 100644 --- a/db/migrate/20250917102005_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb +++ b/db/migrate/20251022005737_add_not_empty_constraint_to_vulnerability_statistics_traversal_ids.rb @@ -2,22 +2,21 @@ class AddNotEmptyConstraintToVulnerabilityStatisticsTraversalIds < Gitlab::Database::Migration[2.3] disable_ddl_transaction! - milestone '18.5' - - CONSTRAINT_NAME = 'check_vulnerability_statistics_traversal_ids_not_empty' + milestone '18.6' def up add_check_constraint( :vulnerability_statistics, 'cardinality(traversal_ids) > 0', - CONSTRAINT_NAME + 'check_vulnerability_statistics_traversal_ids_not_empty', + validate: false ) end def down remove_check_constraint( :vulnerability_statistics, - CONSTRAINT_NAME + 'check_vulnerability_statistics_traversal_ids_not_empty' ) end end diff --git a/db/schema_migrations/20250917102005 b/db/schema_migrations/20250917102005 deleted file mode 100644 index d6adfaeb806fbf..00000000000000 --- a/db/schema_migrations/20250917102005 +++ /dev/null @@ -1 +0,0 @@ -9b9c1ac3a227c8718ecc54c8cd4561a7b9e4554335064c99e5cccd365db178c6 \ No newline at end of file diff --git a/db/schema_migrations/20251022005737 b/db/schema_migrations/20251022005737 new file mode 100644 index 00000000000000..3d73b79418c12b --- /dev/null +++ b/db/schema_migrations/20251022005737 @@ -0,0 +1 @@ +9faaf92dda2f7b3e7f77e5701eeec91e908c77761955e295922b5b18eb4a45eb \ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index 3fc6239f31d85e..6a1685493722ba 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -28771,8 +28771,7 @@ CREATE TABLE vulnerability_statistics ( age_mean double precision DEFAULT 0.0 NOT NULL, age_sum_of_squares double precision DEFAULT 0.0 NOT NULL, risk_score double precision DEFAULT 0.0 NOT NULL, - security_project_tracked_context_id bigint, - CONSTRAINT check_vulnerability_statistics_traversal_ids_not_empty CHECK ((cardinality(traversal_ids) > 0)) + security_project_tracked_context_id bigint ); CREATE SEQUENCE vulnerability_statistics_id_seq @@ -33301,6 +33300,9 @@ ALTER TABLE project_type_ci_runner_machines ALTER TABLE project_type_ci_runners ADD CONSTRAINT check_organization_id_nullness CHECK ((organization_id IS NOT NULL)) NOT VALID; +ALTER TABLE vulnerability_statistics + ADD CONSTRAINT check_vulnerability_statistics_traversal_ids_not_empty CHECK ((cardinality(traversal_ids) > 0)) NOT VALID; + ALTER TABLE ONLY ci_build_needs ADD CONSTRAINT ci_build_needs_pkey PRIMARY KEY (id); -- GitLab