From b8462258d998704242dba202ade83b838874a38c Mon Sep 17 00:00:00 2001 From: Shane Maglangit <smaglangit@gitlab.com> Date: Tue, 21 Jan 2025 14:23:14 +0800 Subject: [PATCH] Add NOT NULL constraint on terraform_state_versions.project_id Changelog: other --- ...te_versions_project_id_not_null_constraint.rb | 14 ++++++++++++++ ...te_versions_project_id_not_null_validation.rb | 16 ++++++++++++++++ db/schema_migrations/20250121061641 | 1 + db/schema_migrations/20250121061656 | 1 + db/structure.sql | 3 +++ 5 files changed, 35 insertions(+) create mode 100644 db/post_migrate/20250121061641_add_terraform_state_versions_project_id_not_null_constraint.rb create mode 100644 db/post_migrate/20250121061656_prepare_terraform_state_versions_project_id_not_null_validation.rb create mode 100644 db/schema_migrations/20250121061641 create mode 100644 db/schema_migrations/20250121061656 diff --git a/db/post_migrate/20250121061641_add_terraform_state_versions_project_id_not_null_constraint.rb b/db/post_migrate/20250121061641_add_terraform_state_versions_project_id_not_null_constraint.rb new file mode 100644 index 0000000000000..8da041cd6995f --- /dev/null +++ b/db/post_migrate/20250121061641_add_terraform_state_versions_project_id_not_null_constraint.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddTerraformStateVersionsProjectIdNotNullConstraint < Gitlab::Database::Migration[2.2] + disable_ddl_transaction! + milestone '17.9' + + def up + add_not_null_constraint :terraform_state_versions, :project_id, validate: false + end + + def down + remove_not_null_constraint :terraform_state_versions, :project_id + end +end diff --git a/db/post_migrate/20250121061656_prepare_terraform_state_versions_project_id_not_null_validation.rb b/db/post_migrate/20250121061656_prepare_terraform_state_versions_project_id_not_null_validation.rb new file mode 100644 index 0000000000000..e1b718ff67081 --- /dev/null +++ b/db/post_migrate/20250121061656_prepare_terraform_state_versions_project_id_not_null_validation.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +class PrepareTerraformStateVersionsProjectIdNotNullValidation < Gitlab::Database::Migration[2.2] + disable_ddl_transaction! + milestone '17.9' + + CONSTRAINT_NAME = :check_84142902f6 + + def up + prepare_async_check_constraint_validation :terraform_state_versions, name: CONSTRAINT_NAME + end + + def down + unprepare_async_check_constraint_validation :terraform_state_versions, name: CONSTRAINT_NAME + end +end diff --git a/db/schema_migrations/20250121061641 b/db/schema_migrations/20250121061641 new file mode 100644 index 0000000000000..03ff6a2368888 --- /dev/null +++ b/db/schema_migrations/20250121061641 @@ -0,0 +1 @@ +ff9d664955a375cdc264a048ee4f06e8c2d46d20e8dc0ea66234964d20f6cbd3 \ No newline at end of file diff --git a/db/schema_migrations/20250121061656 b/db/schema_migrations/20250121061656 new file mode 100644 index 0000000000000..3c2f3f243c1d2 --- /dev/null +++ b/db/schema_migrations/20250121061656 @@ -0,0 +1 @@ +c3ef8d6c6c1b697ce79fbe48c7ba109b032316c06a2013bdaee32132eaee7615 \ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index 0e335d7b44a91..8e5916dee5530 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -26272,6 +26272,9 @@ ALTER TABLE vulnerability_scanners ALTER TABLE p_ci_pipeline_variables ADD CONSTRAINT check_6e932dbabf CHECK ((project_id IS NOT NULL)) NOT VALID; +ALTER TABLE terraform_state_versions + ADD CONSTRAINT check_84142902f6 CHECK ((project_id IS NOT NULL)) NOT VALID; + ALTER TABLE sbom_occurrences_vulnerabilities ADD CONSTRAINT check_a02e48df9c CHECK ((project_id IS NOT NULL)) NOT VALID; -- GitLab