From eb078beace5180dd460e54f04e83bd10f5cf07d0 Mon Sep 17 00:00:00 2001 From: George Koltsov Date: Mon, 25 Aug 2025 17:33:35 +0200 Subject: [PATCH] Add not null constraint on jira_tracker_data sharding key --- ...ot_null_constraint_to_jira_tracker_data.rb | 25 +++++++++++++++++++ db/schema_migrations/20250825113142 | 1 + db/structure.sql | 3 ++- 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 db/post_migrate/20250825113142_add_multi_column_not_null_constraint_to_jira_tracker_data.rb create mode 100644 db/schema_migrations/20250825113142 diff --git a/db/post_migrate/20250825113142_add_multi_column_not_null_constraint_to_jira_tracker_data.rb b/db/post_migrate/20250825113142_add_multi_column_not_null_constraint_to_jira_tracker_data.rb new file mode 100644 index 00000000000000..0c9145c2d7a2fb --- /dev/null +++ b/db/post_migrate/20250825113142_add_multi_column_not_null_constraint_to_jira_tracker_data.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +class AddMultiColumnNotNullConstraintToJiraTrackerData < Gitlab::Database::Migration[2.3] + milestone '18.4' + + disable_ddl_transaction! + + def up + add_multi_column_not_null_constraint( + :jira_tracker_data, + :group_id, + :project_id, + :organization_id + ) + end + + def down + remove_multi_column_not_null_constraint( + :jira_tracker_data, + :group_id, + :project_id, + :organization_id + ) + end +end diff --git a/db/schema_migrations/20250825113142 b/db/schema_migrations/20250825113142 new file mode 100644 index 00000000000000..64c2b3f3c7b471 --- /dev/null +++ b/db/schema_migrations/20250825113142 @@ -0,0 +1 @@ +243e38d1c3b39fba9d7ce255dc2b604f755f0ac385795c12f2877ac4334d6e88 \ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index 5e5886634503b2..186741b0440560 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -18864,7 +18864,8 @@ CREATE TABLE jira_tracker_data ( CONSTRAINT check_214cf6a48b CHECK ((char_length(project_key) <= 255)), CONSTRAINT check_4cc5bbc801 CHECK ((char_length(jira_issue_prefix) <= 255)), CONSTRAINT check_9863a0a5fd CHECK ((char_length(jira_issue_regex) <= 255)), - CONSTRAINT check_b5ab881f50 CHECK ((char_length(jira_allowed_statuses_string) <= 1024)) + CONSTRAINT check_b5ab881f50 CHECK ((char_length(jira_allowed_statuses_string) <= 1024)), + CONSTRAINT check_eca1fbd6bd CHECK ((num_nonnulls(group_id, organization_id, project_id) = 1)) ); CREATE SEQUENCE jira_tracker_data_id_seq -- GitLab