From 97f389bc7aade6cea773c5c5007bf023455c5bf3 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Wed, 23 Jul 2025 14:31:19 +1200 Subject: [PATCH 1/7] WIP --- ...e_report_uploads_sharding_keys_not_null.rb | 24 ++++++++++++++ ...ievement_uploads_sharding_keys_not_null.rb | 14 ++++++++ ...ble_file_uploads_sharding_keys_not_null.rb | 14 ++++++++ ...ic_image_uploads_sharding_keys_not_null.rb | 14 ++++++++ ...pearance_uploads_sharding_keys_not_null.rb | 24 ++++++++++++++ ...t_upload_uploads_sharding_keys_not_null.rb | 14 ++++++++ ...ort_part_uploads_sharding_keys_not_null.rb | 14 ++++++++ ...t_export_uploads_sharding_keys_not_null.rb | 14 ++++++++ ...t_action_uploads_sharding_keys_not_null.rb | 14 ++++++++ ...t_upload_uploads_sharding_keys_not_null.rb | 14 ++++++++ ...ic_image_uploads_sharding_keys_not_null.rb | 14 ++++++++ ...amespace_uploads_sharding_keys_not_null.rb | 14 ++++++++ ...n_detail_uploads_sharding_keys_not_null.rb | 14 ++++++++ ...t_upload_uploads_sharding_keys_not_null.rb | 14 ++++++++ ...ct_topic_uploads_sharding_keys_not_null.rb | 14 ++++++++ ..._project_uploads_sharding_keys_not_null.rb | 14 ++++++++ ..._snippet_uploads_sharding_keys_not_null.rb | 14 ++++++++ ...t_upload_uploads_sharding_keys_not_null.rb | 25 +++++++++++++++ ...e_export_uploads_sharding_keys_not_null.rb | 14 ++++++++ ...ort_part_uploads_sharding_keys_not_null.rb | 14 ++++++++ ...y_export_uploads_sharding_keys_not_null.rb | 14 ++++++++ ...ediation_uploads_sharding_keys_not_null.rb | 14 ++++++++ db/schema_migrations/20250728022816 | 1 + db/schema_migrations/20250728023316 | 1 + db/schema_migrations/20250728023816 | 1 + db/schema_migrations/20250728024316 | 1 + db/schema_migrations/20250728024816 | 1 + db/schema_migrations/20250728025316 | 1 + db/schema_migrations/20250728025816 | 1 + db/schema_migrations/20250728030316 | 1 + db/schema_migrations/20250728030816 | 1 + db/schema_migrations/20250728031316 | 1 + db/schema_migrations/20250728031816 | 1 + db/schema_migrations/20250728032316 | 1 + db/schema_migrations/20250728032816 | 1 + db/schema_migrations/20250728033316 | 1 + db/schema_migrations/20250728033816 | 1 + db/schema_migrations/20250728034316 | 1 + db/schema_migrations/20250728034816 | 1 + db/schema_migrations/20250728035316 | 1 + db/schema_migrations/20250728040316 | 1 + db/schema_migrations/20250728040816 | 1 + db/schema_migrations/20250728041316 | 1 + db/schema_migrations/20250728041816 | 1 + db/structure.sql | 32 ++++++++++++++++--- 45 files changed, 388 insertions(+), 5 deletions(-) create mode 100644 db/post_migrate/20250728022816_abuse_report_uploads_sharding_keys_not_null.rb create mode 100644 db/post_migrate/20250728023316_achievement_uploads_sharding_keys_not_null.rb create mode 100644 db/post_migrate/20250728023816_ai_vectorizable_file_uploads_sharding_keys_not_null.rb create mode 100644 db/post_migrate/20250728024316_alert_management_alert_metric_image_uploads_sharding_keys_not_null.rb create mode 100644 db/post_migrate/20250728024816_appearance_uploads_sharding_keys_not_null.rb create mode 100644 db/post_migrate/20250728025316_bulk_import_export_upload_uploads_sharding_keys_not_null.rb create mode 100644 db/post_migrate/20250728025816_dependency_list_export_part_uploads_sharding_keys_not_null.rb create mode 100644 db/post_migrate/20250728030316_dependency_list_export_uploads_sharding_keys_not_null.rb create mode 100644 db/post_migrate/20250728030816_design_management_action_uploads_sharding_keys_not_null.rb create mode 100644 db/post_migrate/20250728031316_import_export_upload_uploads_sharding_keys_not_null.rb create mode 100644 db/post_migrate/20250728031816_issuable_metric_image_uploads_sharding_keys_not_null.rb create mode 100644 db/post_migrate/20250728032316_namespace_uploads_sharding_keys_not_null.rb create mode 100644 db/post_migrate/20250728032816_organization_detail_uploads_sharding_keys_not_null.rb create mode 100644 db/post_migrate/20250728033316_project_import_export_relation_export_upload_uploads_sharding_keys_not_null.rb create mode 100644 db/post_migrate/20250728033816_project_topic_uploads_sharding_keys_not_null.rb create mode 100644 db/post_migrate/20250728034316_project_uploads_sharding_keys_not_null.rb create mode 100644 db/post_migrate/20250728034816_snippet_uploads_sharding_keys_not_null.rb create mode 100644 db/post_migrate/20250728035316_user_permission_export_upload_uploads_sharding_keys_not_null.rb create mode 100644 db/post_migrate/20250728040316_vulnerability_archive_export_uploads_sharding_keys_not_null.rb create mode 100644 db/post_migrate/20250728040816_vulnerability_export_part_uploads_sharding_keys_not_null.rb create mode 100644 db/post_migrate/20250728041316_vulnerability_export_uploads_sharding_keys_not_null.rb create mode 100644 db/post_migrate/20250728041816_vulnerability_remediation_uploads_sharding_keys_not_null.rb create mode 100644 db/schema_migrations/20250728022816 create mode 100644 db/schema_migrations/20250728023316 create mode 100644 db/schema_migrations/20250728023816 create mode 100644 db/schema_migrations/20250728024316 create mode 100644 db/schema_migrations/20250728024816 create mode 100644 db/schema_migrations/20250728025316 create mode 100644 db/schema_migrations/20250728025816 create mode 100644 db/schema_migrations/20250728030316 create mode 100644 db/schema_migrations/20250728030816 create mode 100644 db/schema_migrations/20250728031316 create mode 100644 db/schema_migrations/20250728031816 create mode 100644 db/schema_migrations/20250728032316 create mode 100644 db/schema_migrations/20250728032816 create mode 100644 db/schema_migrations/20250728033316 create mode 100644 db/schema_migrations/20250728033816 create mode 100644 db/schema_migrations/20250728034316 create mode 100644 db/schema_migrations/20250728034816 create mode 100644 db/schema_migrations/20250728035316 create mode 100644 db/schema_migrations/20250728040316 create mode 100644 db/schema_migrations/20250728040816 create mode 100644 db/schema_migrations/20250728041316 create mode 100644 db/schema_migrations/20250728041816 diff --git a/db/post_migrate/20250728022816_abuse_report_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728022816_abuse_report_uploads_sharding_keys_not_null.rb new file mode 100644 index 00000000000000..4e3dd3271f03a6 --- /dev/null +++ b/db/post_migrate/20250728022816_abuse_report_uploads_sharding_keys_not_null.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +class AbuseReportUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] + milestone '18.3' + disable_ddl_transaction! + + TABLE_NAME = "abuse_report_uploads".freeze + COLUMNS = %w[project_id namespace_id organization_id].freeze + + def up + add_check_constraint( + TABLE_NAME, + "num_nonnulls(#{COLUMNS.join(', ')}) = 0", + check_constraint_name(TABLE_NAME, COLUMNS.join('_'), 'sharding_keys_null') + ) + end + + def down + remove_check_constraint( + TABLE_NAME, + check_constraint_name(TABLE_NAME, COLUMNS.join('_'), 'sharding_keys_null') + ) + end +end diff --git a/db/post_migrate/20250728023316_achievement_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728023316_achievement_uploads_sharding_keys_not_null.rb new file mode 100644 index 00000000000000..889cb2ff9cfe4c --- /dev/null +++ b/db/post_migrate/20250728023316_achievement_uploads_sharding_keys_not_null.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AchievementUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] + milestone '18.3' + disable_ddl_transaction! + + def up + add_not_null_constraint :achievement_uploads, :namespace_id + end + + def down + remove_not_null_constraint :achievement_uploads, :namespace_id + end +end diff --git a/db/post_migrate/20250728023816_ai_vectorizable_file_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728023816_ai_vectorizable_file_uploads_sharding_keys_not_null.rb new file mode 100644 index 00000000000000..3daf4e5329ddf0 --- /dev/null +++ b/db/post_migrate/20250728023816_ai_vectorizable_file_uploads_sharding_keys_not_null.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AiVectorizableFileUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] + milestone '18.3' + disable_ddl_transaction! + + def up + add_not_null_constraint :ai_vectorizable_file_uploads, :project_id + end + + def down + remove_not_null_constraint :ai_vectorizable_file_uploads, :project_id + end +end diff --git a/db/post_migrate/20250728024316_alert_management_alert_metric_image_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728024316_alert_management_alert_metric_image_uploads_sharding_keys_not_null.rb new file mode 100644 index 00000000000000..74de005697be29 --- /dev/null +++ b/db/post_migrate/20250728024316_alert_management_alert_metric_image_uploads_sharding_keys_not_null.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AlertManagementAlertMetricImageUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] + milestone '18.3' + disable_ddl_transaction! + + def up + add_not_null_constraint :alert_management_alert_metric_image_uploads, :project_id + end + + def down + remove_not_null_constraint :alert_management_alert_metric_image_uploads, :project_id + end +end diff --git a/db/post_migrate/20250728024816_appearance_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728024816_appearance_uploads_sharding_keys_not_null.rb new file mode 100644 index 00000000000000..3bbad5f9336171 --- /dev/null +++ b/db/post_migrate/20250728024816_appearance_uploads_sharding_keys_not_null.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +class AppearanceUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] + milestone '18.3' + disable_ddl_transaction! + + TABLE_NAME = "appearance_uploads".freeze + COLUMNS = %w[project_id namespace_id organization_id].freeze + + def up + add_check_constraint( + TABLE_NAME, + "num_nonnulls(#{COLUMNS.join(', ')}) = 0", + check_constraint_name(TABLE_NAME, COLUMNS.join('_'), 'sharding_keys_null') + ) + end + + def down + remove_check_constraint( + TABLE_NAME, + check_constraint_name(TABLE_NAME, COLUMNS.join('_'), 'sharding_keys_null') + ) + end +end diff --git a/db/post_migrate/20250728025316_bulk_import_export_upload_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728025316_bulk_import_export_upload_uploads_sharding_keys_not_null.rb new file mode 100644 index 00000000000000..89f08ab87837f6 --- /dev/null +++ b/db/post_migrate/20250728025316_bulk_import_export_upload_uploads_sharding_keys_not_null.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class BulkImportExportUploadUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] + milestone '18.3' + disable_ddl_transaction! + + def up + add_multi_column_not_null_constraint(:bulk_import_export_upload_uploads, :namespace_id, :organization_id, :project_id) + end + + def down + remove_multi_column_not_null_constraint(:bulk_import_export_upload_uploads, :namespace_id, :organization_id, :project_id) + end +end diff --git a/db/post_migrate/20250728025816_dependency_list_export_part_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728025816_dependency_list_export_part_uploads_sharding_keys_not_null.rb new file mode 100644 index 00000000000000..5424634afb5169 --- /dev/null +++ b/db/post_migrate/20250728025816_dependency_list_export_part_uploads_sharding_keys_not_null.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class DependencyListExportPartUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] + milestone '18.3' + disable_ddl_transaction! + + def up + add_not_null_constraint :dependency_list_export_part_uploads, :organization_id + end + + def down + remove_not_null_constraint :dependency_list_export_part_uploads, :organization_id + end +end diff --git a/db/post_migrate/20250728030316_dependency_list_export_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728030316_dependency_list_export_uploads_sharding_keys_not_null.rb new file mode 100644 index 00000000000000..2e85c5c61a212c --- /dev/null +++ b/db/post_migrate/20250728030316_dependency_list_export_uploads_sharding_keys_not_null.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class DependencyListExportUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] + milestone '18.3' + disable_ddl_transaction! + + def up + add_multi_column_not_null_constraint(:dependency_list_export_uploads, :namespace_id, :organization_id, :project_id) + end + + def down + remove_multi_column_not_null_constraint(:dependency_list_export_uploads, :namespace_id, :organization_id, :project_id) + end +end diff --git a/db/post_migrate/20250728030816_design_management_action_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728030816_design_management_action_uploads_sharding_keys_not_null.rb new file mode 100644 index 00000000000000..65e1391c320aad --- /dev/null +++ b/db/post_migrate/20250728030816_design_management_action_uploads_sharding_keys_not_null.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class DesignManagementActionUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] + milestone '18.3' + disable_ddl_transaction! + + def up + add_not_null_constraint :design_management_action_uploads, :namespace_id + end + + def down + remove_not_null_constraint :design_management_action_uploads, :namespace_id + end +end diff --git a/db/post_migrate/20250728031316_import_export_upload_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728031316_import_export_upload_uploads_sharding_keys_not_null.rb new file mode 100644 index 00000000000000..fabcffb8cfa03f --- /dev/null +++ b/db/post_migrate/20250728031316_import_export_upload_uploads_sharding_keys_not_null.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class ImportExportUploadUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] + milestone '18.3' + disable_ddl_transaction! + + def up + add_multi_column_not_null_constraint(:import_export_upload_uploads, :namespace_id, :organization_id, :project_id) + end + + def down + remove_multi_column_not_null_constraint(:import_export_upload_uploads, :namespace_id, :organization_id, :project_id) + end +end diff --git a/db/post_migrate/20250728031816_issuable_metric_image_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728031816_issuable_metric_image_uploads_sharding_keys_not_null.rb new file mode 100644 index 00000000000000..bbfe1f2fa0e45b --- /dev/null +++ b/db/post_migrate/20250728031816_issuable_metric_image_uploads_sharding_keys_not_null.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class IssuableMetricImageUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] + milestone '18.3' + disable_ddl_transaction! + + def up + add_not_null_constraint :issuable_metric_image_uploads, :namespace_id + end + + def down + remove_not_null_constraint :issuable_metric_image_uploads, :namespace_id + end +end diff --git a/db/post_migrate/20250728032316_namespace_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728032316_namespace_uploads_sharding_keys_not_null.rb new file mode 100644 index 00000000000000..6d7056c874cbca --- /dev/null +++ b/db/post_migrate/20250728032316_namespace_uploads_sharding_keys_not_null.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class NamespaceUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] + milestone '18.3' + disable_ddl_transaction! + + def up + add_not_null_constraint :namespace_uploads, :namespace_id + end + + def down + remove_not_null_constraint :namespace_uploads, :namespace_id + end +end diff --git a/db/post_migrate/20250728032816_organization_detail_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728032816_organization_detail_uploads_sharding_keys_not_null.rb new file mode 100644 index 00000000000000..0c746fa35379dd --- /dev/null +++ b/db/post_migrate/20250728032816_organization_detail_uploads_sharding_keys_not_null.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class OrganizationDetailUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] + milestone '18.3' + disable_ddl_transaction! + + def up + add_not_null_constraint :organization_detail_uploads, :organization_id + end + + def down + remove_not_null_constraint :organization_detail_uploads, :organization_id + end +end diff --git a/db/post_migrate/20250728033316_project_import_export_relation_export_upload_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728033316_project_import_export_relation_export_upload_uploads_sharding_keys_not_null.rb new file mode 100644 index 00000000000000..0e0014cc6fef58 --- /dev/null +++ b/db/post_migrate/20250728033316_project_import_export_relation_export_upload_uploads_sharding_keys_not_null.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class ProjectImportExportRelationExportUploadUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] + milestone '18.3' + disable_ddl_transaction! + + def up + add_not_null_constraint :project_import_export_relation_export_upload_uploads, :project_id + end + + def down + remove_not_null_constraint :project_import_export_relation_export_upload_uploads, :project_id + end +end diff --git a/db/post_migrate/20250728033816_project_topic_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728033816_project_topic_uploads_sharding_keys_not_null.rb new file mode 100644 index 00000000000000..e895e620a2fd5f --- /dev/null +++ b/db/post_migrate/20250728033816_project_topic_uploads_sharding_keys_not_null.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class ProjectTopicUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] + milestone '18.3' + disable_ddl_transaction! + + def up + add_not_null_constraint :project_topic_uploads, :organization_id + end + + def down + remove_not_null_constraint :project_topic_uploads, :organization_id + end +end diff --git a/db/post_migrate/20250728034316_project_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728034316_project_uploads_sharding_keys_not_null.rb new file mode 100644 index 00000000000000..680fb559917b77 --- /dev/null +++ b/db/post_migrate/20250728034316_project_uploads_sharding_keys_not_null.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class ProjectUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] + milestone '18.3' + disable_ddl_transaction! + + def up + add_not_null_constraint :project_uploads, :project_id + end + + def down + remove_not_null_constraint :project_uploads, :project_id + end +end diff --git a/db/post_migrate/20250728034816_snippet_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728034816_snippet_uploads_sharding_keys_not_null.rb new file mode 100644 index 00000000000000..b66f489700d8b9 --- /dev/null +++ b/db/post_migrate/20250728034816_snippet_uploads_sharding_keys_not_null.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class SnippetUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] + milestone '18.3' + disable_ddl_transaction! + + def up + add_not_null_constraint :snippet_uploads, :organization_id + end + + def down + remove_not_null_constraint :snippet_uploads, :organization_id + end +end diff --git a/db/post_migrate/20250728035316_user_permission_export_upload_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728035316_user_permission_export_upload_uploads_sharding_keys_not_null.rb new file mode 100644 index 00000000000000..e58ca599b4c8b5 --- /dev/null +++ b/db/post_migrate/20250728035316_user_permission_export_upload_uploads_sharding_keys_not_null.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +class UserPermissionExportUploadUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] + milestone '18.3' + disable_ddl_transaction! + + TABLE_NAME = "user_permission_export_upload_uploads".freeze + COLUMNS = %w[project_id namespace_id organization_id].freeze + + def up + add_check_constraint( + TABLE_NAME, + "num_nonnulls(#{COLUMNS.join(', ')}) = 0", + check_constraint_name(TABLE_NAME, COLUMNS.join('_'), 'sharding_keys_null') + ) + end + + def down + remove_check_constraint( + TABLE_NAME, + check_constraint_name(TABLE_NAME, COLUMNS.join('_'), 'sharding_keys_null') + ) + end +end + diff --git a/db/post_migrate/20250728040316_vulnerability_archive_export_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728040316_vulnerability_archive_export_uploads_sharding_keys_not_null.rb new file mode 100644 index 00000000000000..f19eb760e7a944 --- /dev/null +++ b/db/post_migrate/20250728040316_vulnerability_archive_export_uploads_sharding_keys_not_null.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class VulnerabilityArchiveExportUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] + milestone '18.3' + disable_ddl_transaction! + + def up + add_not_null_constraint :vulnerability_archive_export_uploads, :project_id + end + + def down + remove_not_null_constraint :vulnerability_archive_export_uploads, :project_id + end +end diff --git a/db/post_migrate/20250728040816_vulnerability_export_part_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728040816_vulnerability_export_part_uploads_sharding_keys_not_null.rb new file mode 100644 index 00000000000000..6c5c3fc6330729 --- /dev/null +++ b/db/post_migrate/20250728040816_vulnerability_export_part_uploads_sharding_keys_not_null.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class VulnerabilityExportPartUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] + milestone '18.3' + disable_ddl_transaction! + + def up + add_not_null_constraint :vulnerability_export_part_uploads, :organization_id + end + + def down + remove_not_null_constraint :vulnerability_export_part_uploads, :organization_id + end +end diff --git a/db/post_migrate/20250728041316_vulnerability_export_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728041316_vulnerability_export_uploads_sharding_keys_not_null.rb new file mode 100644 index 00000000000000..8d52d8788e7df0 --- /dev/null +++ b/db/post_migrate/20250728041316_vulnerability_export_uploads_sharding_keys_not_null.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class VulnerabilityExportUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] + milestone '18.3' + disable_ddl_transaction! + + def up + add_not_null_constraint :vulnerability_export_uploads, :organization_id + end + + def down + remove_not_null_constraint :vulnerability_export_uploads, :organization_id + end +end diff --git a/db/post_migrate/20250728041816_vulnerability_remediation_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728041816_vulnerability_remediation_uploads_sharding_keys_not_null.rb new file mode 100644 index 00000000000000..1a052bd2b1a2ca --- /dev/null +++ b/db/post_migrate/20250728041816_vulnerability_remediation_uploads_sharding_keys_not_null.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class VulnerabilityRemediationUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] + milestone '18.3' + disable_ddl_transaction! + + def up + add_not_null_constraint :vulnerability_remediation_uploads, :project_id + end + + def down + remove_not_null_constraint :vulnerability_remediation_uploads, :project_id + end +end diff --git a/db/schema_migrations/20250728022816 b/db/schema_migrations/20250728022816 new file mode 100644 index 00000000000000..06cec10c6d20a9 --- /dev/null +++ b/db/schema_migrations/20250728022816 @@ -0,0 +1 @@ +1d831625edbef648c98327e745f2b1bbd8e972acc78625d3fcdeeacf7176d76f \ No newline at end of file diff --git a/db/schema_migrations/20250728023316 b/db/schema_migrations/20250728023316 new file mode 100644 index 00000000000000..429ebf9b678511 --- /dev/null +++ b/db/schema_migrations/20250728023316 @@ -0,0 +1 @@ +b3c5cc03be3ccde6d24d56c2ec5d56cf2011230b4aa3ec9d179d505a902054cb \ No newline at end of file diff --git a/db/schema_migrations/20250728023816 b/db/schema_migrations/20250728023816 new file mode 100644 index 00000000000000..b2a0944b519f9e --- /dev/null +++ b/db/schema_migrations/20250728023816 @@ -0,0 +1 @@ +2ed878ea0ff5de8336cf630e4da08c83ddafa43b0f8ad27e617cfc7bb26203ed \ No newline at end of file diff --git a/db/schema_migrations/20250728024316 b/db/schema_migrations/20250728024316 new file mode 100644 index 00000000000000..c6ee6f7f0d30cd --- /dev/null +++ b/db/schema_migrations/20250728024316 @@ -0,0 +1 @@ +a0092b1dbb3db4a84c2552b18c5acbec1859986cd2a350ed0a9996deb7378023 \ No newline at end of file diff --git a/db/schema_migrations/20250728024816 b/db/schema_migrations/20250728024816 new file mode 100644 index 00000000000000..429f9391171566 --- /dev/null +++ b/db/schema_migrations/20250728024816 @@ -0,0 +1 @@ +a915c1be1a78ca3372fa3e297b22fb39cf78292f7a5da871e75327502813eaec \ No newline at end of file diff --git a/db/schema_migrations/20250728025316 b/db/schema_migrations/20250728025316 new file mode 100644 index 00000000000000..a6e9b80f93658f --- /dev/null +++ b/db/schema_migrations/20250728025316 @@ -0,0 +1 @@ +65dd41120573058f7c4ec86fd8d397a9f0bd86887c676bd9ad3e5105fa72512d \ No newline at end of file diff --git a/db/schema_migrations/20250728025816 b/db/schema_migrations/20250728025816 new file mode 100644 index 00000000000000..26daa8bd9621a1 --- /dev/null +++ b/db/schema_migrations/20250728025816 @@ -0,0 +1 @@ +87458a99665c8c4b8fa0117eb27848dc5148b4a2caa719a35195625f44d3b91b \ No newline at end of file diff --git a/db/schema_migrations/20250728030316 b/db/schema_migrations/20250728030316 new file mode 100644 index 00000000000000..7425dbb35c35a1 --- /dev/null +++ b/db/schema_migrations/20250728030316 @@ -0,0 +1 @@ +819a0703377749c9947458d6106f63c57ce844fd59fa42370ce0016c54fc9cf2 \ No newline at end of file diff --git a/db/schema_migrations/20250728030816 b/db/schema_migrations/20250728030816 new file mode 100644 index 00000000000000..44c577aabb0070 --- /dev/null +++ b/db/schema_migrations/20250728030816 @@ -0,0 +1 @@ +9f262287264e3df7d40c6aa179b768a69f4bab620d03c4d1cd384ca3ab4205f2 \ No newline at end of file diff --git a/db/schema_migrations/20250728031316 b/db/schema_migrations/20250728031316 new file mode 100644 index 00000000000000..9216f4d90bbe80 --- /dev/null +++ b/db/schema_migrations/20250728031316 @@ -0,0 +1 @@ +df5a622580f1bae707fdf46bf43fb761ab0f3de6b584caee2923771f73ec64a6 \ No newline at end of file diff --git a/db/schema_migrations/20250728031816 b/db/schema_migrations/20250728031816 new file mode 100644 index 00000000000000..1294c62a376fe2 --- /dev/null +++ b/db/schema_migrations/20250728031816 @@ -0,0 +1 @@ +d770729f31a6c6558be6a6c08626869005021cf82f7274d1280ff3b885aa93c3 \ No newline at end of file diff --git a/db/schema_migrations/20250728032316 b/db/schema_migrations/20250728032316 new file mode 100644 index 00000000000000..749e9a27393534 --- /dev/null +++ b/db/schema_migrations/20250728032316 @@ -0,0 +1 @@ +52809edcb49cfae73a9e5b1f3aeb122db633bbcb5fd24703ea17a4dce7c04cd9 \ No newline at end of file diff --git a/db/schema_migrations/20250728032816 b/db/schema_migrations/20250728032816 new file mode 100644 index 00000000000000..e3c8198e1cff5a --- /dev/null +++ b/db/schema_migrations/20250728032816 @@ -0,0 +1 @@ +6c5588e2406abb93fcca7b5b384bf5c81ae5136556fd70d88f1a6d5c25be9a3a \ No newline at end of file diff --git a/db/schema_migrations/20250728033316 b/db/schema_migrations/20250728033316 new file mode 100644 index 00000000000000..b5d649348adbd5 --- /dev/null +++ b/db/schema_migrations/20250728033316 @@ -0,0 +1 @@ +cac3d6fbd8962d0d26cc8b7da1b7cbaa5a4b2b63e2bbad2d06193ad27bb695ce \ No newline at end of file diff --git a/db/schema_migrations/20250728033816 b/db/schema_migrations/20250728033816 new file mode 100644 index 00000000000000..b7f67624ee0274 --- /dev/null +++ b/db/schema_migrations/20250728033816 @@ -0,0 +1 @@ +563b1d049e76c5413b3fcc2eca671d10fce61ed6d61529f8c0fe2049916ca7ea \ No newline at end of file diff --git a/db/schema_migrations/20250728034316 b/db/schema_migrations/20250728034316 new file mode 100644 index 00000000000000..eaf7d2056206b9 --- /dev/null +++ b/db/schema_migrations/20250728034316 @@ -0,0 +1 @@ +2e054340570195aff2ad022e04ced491b436951053e6ef518efe0284af3495b4 \ No newline at end of file diff --git a/db/schema_migrations/20250728034816 b/db/schema_migrations/20250728034816 new file mode 100644 index 00000000000000..88789024901c2d --- /dev/null +++ b/db/schema_migrations/20250728034816 @@ -0,0 +1 @@ +a7c29282a1c68d9b68af3beaee3e780d78204236ed25700de4934fd3f7ed8cb7 \ No newline at end of file diff --git a/db/schema_migrations/20250728035316 b/db/schema_migrations/20250728035316 new file mode 100644 index 00000000000000..24280b3c8ab8a0 --- /dev/null +++ b/db/schema_migrations/20250728035316 @@ -0,0 +1 @@ +b40e9b5dfb212d3c74689544b8ea965b0834e7654c356d7c7c748b64fa5d05d2 \ No newline at end of file diff --git a/db/schema_migrations/20250728040316 b/db/schema_migrations/20250728040316 new file mode 100644 index 00000000000000..6c18deabad8ab3 --- /dev/null +++ b/db/schema_migrations/20250728040316 @@ -0,0 +1 @@ +dc95d7521c5680d47f3881a3b8a5fb65fdebc07fd6bf404ab414f31fc3ee5255 \ No newline at end of file diff --git a/db/schema_migrations/20250728040816 b/db/schema_migrations/20250728040816 new file mode 100644 index 00000000000000..356aa4e45acd3b --- /dev/null +++ b/db/schema_migrations/20250728040816 @@ -0,0 +1 @@ +999b353efb74301c72ae9d23f06180fd0c16f57a7ce2ceb15abd9b577241fb19 \ No newline at end of file diff --git a/db/schema_migrations/20250728041316 b/db/schema_migrations/20250728041316 new file mode 100644 index 00000000000000..ba877fb728cad3 --- /dev/null +++ b/db/schema_migrations/20250728041316 @@ -0,0 +1 @@ +ed09cd9234a8ff978afa727938780bef22ef70661b981c1e7993e015b42749b1 \ No newline at end of file diff --git a/db/schema_migrations/20250728041816 b/db/schema_migrations/20250728041816 new file mode 100644 index 00000000000000..2cfc13fd51f911 --- /dev/null +++ b/db/schema_migrations/20250728041816 @@ -0,0 +1 @@ +f0a90500848d2d838c1cd4f41aac5b47a93cfddc5ecc091f85f519e5278e70ae \ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index 531c7ca2bca335..50b3395da914df 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -7954,6 +7954,7 @@ CREATE TABLE abuse_report_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), + CONSTRAINT check_8496b14ef4 CHECK ((num_nonnulls(project_id, namespace_id, organization_id) = 0)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -8052,6 +8053,7 @@ CREATE TABLE achievement_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), + CONSTRAINT check_9dac0178ee CHECK ((namespace_id IS NOT NULL)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -8632,6 +8634,7 @@ CREATE TABLE ai_vectorizable_file_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), + CONSTRAINT check_73db12226b CHECK ((project_id IS NOT NULL)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -8690,6 +8693,7 @@ CREATE TABLE alert_management_alert_metric_image_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), + CONSTRAINT check_49e9003aa6 CHECK ((project_id IS NOT NULL)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -9086,6 +9090,7 @@ CREATE TABLE appearance_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), + CONSTRAINT check_a722a62c04 CHECK ((num_nonnulls(project_id, namespace_id, organization_id) = 0)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -11273,6 +11278,7 @@ CREATE TABLE bulk_import_export_upload_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), + CONSTRAINT check_4206751511 CHECK ((num_nonnulls(namespace_id, organization_id, project_id) = 1)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -13850,6 +13856,7 @@ CREATE TABLE dependency_list_export_part_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), + CONSTRAINT check_86a96d8348 CHECK ((organization_id IS NOT NULL)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -13893,6 +13900,7 @@ CREATE TABLE dependency_list_export_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), + CONSTRAINT check_889220aa2d CHECK ((num_nonnulls(namespace_id, organization_id, project_id) = 1)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -14215,6 +14223,7 @@ CREATE TABLE design_management_action_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), + CONSTRAINT check_63456653da CHECK ((namespace_id IS NOT NULL)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -15978,6 +15987,7 @@ CREATE TABLE import_export_upload_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), + CONSTRAINT check_4eb49c8ee8 CHECK ((num_nonnulls(namespace_id, organization_id, project_id) = 1)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -16623,6 +16633,7 @@ CREATE TABLE issuable_metric_image_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), + CONSTRAINT check_5bfdc76f5c CHECK ((namespace_id IS NOT NULL)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -18702,7 +18713,8 @@ CREATE TABLE namespace_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), - CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) + CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)), + CONSTRAINT check_dff00b5115 CHECK ((namespace_id IS NOT NULL)) ); CREATE SEQUENCE namespaces_id_seq @@ -19306,6 +19318,7 @@ CREATE TABLE organization_detail_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), + CONSTRAINT check_8c86d5dff9 CHECK ((organization_id IS NOT NULL)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -21796,6 +21809,7 @@ CREATE TABLE project_import_export_relation_export_upload_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), + CONSTRAINT check_3802d7ee83 CHECK ((project_id IS NOT NULL)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -22217,7 +22231,8 @@ CREATE TABLE project_topic_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), - CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) + CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)), + CONSTRAINT check_d6cd4bbec3 CHECK ((organization_id IS NOT NULL)) ); CREATE TABLE project_topics ( @@ -22315,7 +22330,8 @@ CREATE TABLE project_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), - CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) + CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)), + CONSTRAINT check_d5b2a170a1 CHECK ((project_id IS NOT NULL)) ); CREATE TABLE project_wiki_repositories ( @@ -24009,7 +24025,8 @@ CREATE TABLE snippet_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), - CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) + CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)), + CONSTRAINT check_f1b1b6e769 CHECK ((organization_id IS NOT NULL)) ); CREATE TABLE snippet_user_mentions ( @@ -25203,6 +25220,7 @@ CREATE TABLE user_permission_export_upload_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), + CONSTRAINT check_a2b88c893f CHECK ((num_nonnulls(project_id, namespace_id, organization_id) = 0)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -25632,6 +25650,7 @@ CREATE TABLE vulnerability_archive_export_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), + CONSTRAINT check_7bfde94300 CHECK ((project_id IS NOT NULL)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -25680,7 +25699,8 @@ CREATE TABLE vulnerability_export_part_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), - CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) + CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)), + CONSTRAINT check_fafd5f387b CHECK ((organization_id IS NOT NULL)) ); CREATE TABLE vulnerability_export_parts ( @@ -25722,6 +25742,7 @@ CREATE TABLE vulnerability_export_uploads ( uploader text NOT NULL, mount_point text, secret text, + CONSTRAINT check_1bc83211e7 CHECK ((organization_id IS NOT NULL)), CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -26190,6 +26211,7 @@ CREATE TABLE vulnerability_remediation_uploads ( uploader text NOT NULL, mount_point text, secret text, + CONSTRAINT check_23cba26410 CHECK ((project_id IS NOT NULL)), CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); -- GitLab From 4c914d04ce6b9467e1c18a0793a3b6176cf20b3b Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 29 Jul 2025 16:05:44 +1200 Subject: [PATCH 2/7] WIP - exclude bulk_import_export_upload_uploads --- ...ulk_import_export_upload_uploads_sharding_keys_not_null.rb | 4 ++-- db/structure.sql | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/db/post_migrate/20250728025316_bulk_import_export_upload_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728025316_bulk_import_export_upload_uploads_sharding_keys_not_null.rb index 89f08ab87837f6..de4daa2f9f8cab 100644 --- a/db/post_migrate/20250728025316_bulk_import_export_upload_uploads_sharding_keys_not_null.rb +++ b/db/post_migrate/20250728025316_bulk_import_export_upload_uploads_sharding_keys_not_null.rb @@ -5,10 +5,10 @@ class BulkImportExportUploadUploadsShardingKeysNotNull < Gitlab::Database::Migra disable_ddl_transaction! def up - add_multi_column_not_null_constraint(:bulk_import_export_upload_uploads, :namespace_id, :organization_id, :project_id) + # add_multi_column_not_null_constraint(:bulk_import_export_upload_uploads, :namespace_id, :organization_id, :project_id) end def down - remove_multi_column_not_null_constraint(:bulk_import_export_upload_uploads, :namespace_id, :organization_id, :project_id) + # remove_multi_column_not_null_constraint(:bulk_import_export_upload_uploads, :namespace_id, :organization_id, :project_id) end end diff --git a/db/structure.sql b/db/structure.sql index 50b3395da914df..639af2d10049e4 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -11278,7 +11278,6 @@ CREATE TABLE bulk_import_export_upload_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), - CONSTRAINT check_4206751511 CHECK ((num_nonnulls(namespace_id, organization_id, project_id) = 1)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); -- GitLab From aefc023b94262f4ff8fde57b160e57e7d946c705 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 29 Jul 2025 16:25:05 +1200 Subject: [PATCH 3/7] WIP - issuable_metric_image_uploads --- ...16_issuable_metric_image_uploads_sharding_keys_not_null.rb | 4 ++-- db/structure.sql | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/db/post_migrate/20250728031816_issuable_metric_image_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728031816_issuable_metric_image_uploads_sharding_keys_not_null.rb index bbfe1f2fa0e45b..2d13606f9bc92c 100644 --- a/db/post_migrate/20250728031816_issuable_metric_image_uploads_sharding_keys_not_null.rb +++ b/db/post_migrate/20250728031816_issuable_metric_image_uploads_sharding_keys_not_null.rb @@ -5,10 +5,10 @@ class IssuableMetricImageUploadsShardingKeysNotNull < Gitlab::Database::Migratio disable_ddl_transaction! def up - add_not_null_constraint :issuable_metric_image_uploads, :namespace_id + # add_not_null_constraint :issuable_metric_image_uploads, :namespace_id end def down - remove_not_null_constraint :issuable_metric_image_uploads, :namespace_id + # remove_not_null_constraint :issuable_metric_image_uploads, :namespace_id end end diff --git a/db/structure.sql b/db/structure.sql index 639af2d10049e4..1a8b10e1dd67e5 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -16632,7 +16632,6 @@ CREATE TABLE issuable_metric_image_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), - CONSTRAINT check_5bfdc76f5c CHECK ((namespace_id IS NOT NULL)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); -- GitLab From 36f043de0334cfbbc52729fff3a681181f2dbb57 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 29 Jul 2025 16:37:22 +1200 Subject: [PATCH 4/7] WIP - project_import_export_relation_export_upload_uploads --- ...t_relation_export_upload_uploads_sharding_keys_not_null.rb | 4 ++-- db/structure.sql | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/db/post_migrate/20250728033316_project_import_export_relation_export_upload_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728033316_project_import_export_relation_export_upload_uploads_sharding_keys_not_null.rb index 0e0014cc6fef58..a48114253b9ea8 100644 --- a/db/post_migrate/20250728033316_project_import_export_relation_export_upload_uploads_sharding_keys_not_null.rb +++ b/db/post_migrate/20250728033316_project_import_export_relation_export_upload_uploads_sharding_keys_not_null.rb @@ -5,10 +5,10 @@ class ProjectImportExportRelationExportUploadUploadsShardingKeysNotNull < Gitlab disable_ddl_transaction! def up - add_not_null_constraint :project_import_export_relation_export_upload_uploads, :project_id + # add_not_null_constraint :project_import_export_relation_export_upload_uploads, :project_id end def down - remove_not_null_constraint :project_import_export_relation_export_upload_uploads, :project_id + # remove_not_null_constraint :project_import_export_relation_export_upload_uploads, :project_id end end diff --git a/db/structure.sql b/db/structure.sql index 1a8b10e1dd67e5..39bbaeb3435449 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -21807,7 +21807,6 @@ CREATE TABLE project_import_export_relation_export_upload_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), - CONSTRAINT check_3802d7ee83 CHECK ((project_id IS NOT NULL)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); -- GitLab From bae1b393674f93d700cae9130567272b23b3dc61 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 29 Jul 2025 16:51:29 +1200 Subject: [PATCH 5/7] WIP - project_uploads --- .../20250728034316_project_uploads_sharding_keys_not_null.rb | 4 ++-- db/structure.sql | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/db/post_migrate/20250728034316_project_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728034316_project_uploads_sharding_keys_not_null.rb index 680fb559917b77..63cd848a3c0d40 100644 --- a/db/post_migrate/20250728034316_project_uploads_sharding_keys_not_null.rb +++ b/db/post_migrate/20250728034316_project_uploads_sharding_keys_not_null.rb @@ -5,10 +5,10 @@ class ProjectUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] disable_ddl_transaction! def up - add_not_null_constraint :project_uploads, :project_id + # add_not_null_constraint :project_uploads, :project_id end def down - remove_not_null_constraint :project_uploads, :project_id + # remove_not_null_constraint :project_uploads, :project_id end end diff --git a/db/structure.sql b/db/structure.sql index 39bbaeb3435449..5c3a3143ecdeb0 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -22327,8 +22327,7 @@ CREATE TABLE project_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), - CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)), - CONSTRAINT check_d5b2a170a1 CHECK ((project_id IS NOT NULL)) + CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); CREATE TABLE project_wiki_repositories ( -- GitLab From a2344eb742efbaf5c0dcee12895ff5957c4a7b43 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Wed, 30 Jul 2025 11:18:38 +1200 Subject: [PATCH 6/7] WIP: re-enable all problematic - bulk_import_export_upload_uploads - issuable_metric_image_uploads - project_import_export_relation_export_upload_uploads - project_uploads --- ...k_import_export_upload_uploads_sharding_keys_not_null.rb | 4 ++-- ..._issuable_metric_image_uploads_sharding_keys_not_null.rb | 4 ++-- ...relation_export_upload_uploads_sharding_keys_not_null.rb | 4 ++-- ...20250728034316_project_uploads_sharding_keys_not_null.rb | 4 ++-- db/structure.sql | 6 +++++- 5 files changed, 13 insertions(+), 9 deletions(-) diff --git a/db/post_migrate/20250728025316_bulk_import_export_upload_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728025316_bulk_import_export_upload_uploads_sharding_keys_not_null.rb index de4daa2f9f8cab..89f08ab87837f6 100644 --- a/db/post_migrate/20250728025316_bulk_import_export_upload_uploads_sharding_keys_not_null.rb +++ b/db/post_migrate/20250728025316_bulk_import_export_upload_uploads_sharding_keys_not_null.rb @@ -5,10 +5,10 @@ class BulkImportExportUploadUploadsShardingKeysNotNull < Gitlab::Database::Migra disable_ddl_transaction! def up - # add_multi_column_not_null_constraint(:bulk_import_export_upload_uploads, :namespace_id, :organization_id, :project_id) + add_multi_column_not_null_constraint(:bulk_import_export_upload_uploads, :namespace_id, :organization_id, :project_id) end def down - # remove_multi_column_not_null_constraint(:bulk_import_export_upload_uploads, :namespace_id, :organization_id, :project_id) + remove_multi_column_not_null_constraint(:bulk_import_export_upload_uploads, :namespace_id, :organization_id, :project_id) end end diff --git a/db/post_migrate/20250728031816_issuable_metric_image_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728031816_issuable_metric_image_uploads_sharding_keys_not_null.rb index 2d13606f9bc92c..bbfe1f2fa0e45b 100644 --- a/db/post_migrate/20250728031816_issuable_metric_image_uploads_sharding_keys_not_null.rb +++ b/db/post_migrate/20250728031816_issuable_metric_image_uploads_sharding_keys_not_null.rb @@ -5,10 +5,10 @@ class IssuableMetricImageUploadsShardingKeysNotNull < Gitlab::Database::Migratio disable_ddl_transaction! def up - # add_not_null_constraint :issuable_metric_image_uploads, :namespace_id + add_not_null_constraint :issuable_metric_image_uploads, :namespace_id end def down - # remove_not_null_constraint :issuable_metric_image_uploads, :namespace_id + remove_not_null_constraint :issuable_metric_image_uploads, :namespace_id end end diff --git a/db/post_migrate/20250728033316_project_import_export_relation_export_upload_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728033316_project_import_export_relation_export_upload_uploads_sharding_keys_not_null.rb index a48114253b9ea8..0e0014cc6fef58 100644 --- a/db/post_migrate/20250728033316_project_import_export_relation_export_upload_uploads_sharding_keys_not_null.rb +++ b/db/post_migrate/20250728033316_project_import_export_relation_export_upload_uploads_sharding_keys_not_null.rb @@ -5,10 +5,10 @@ class ProjectImportExportRelationExportUploadUploadsShardingKeysNotNull < Gitlab disable_ddl_transaction! def up - # add_not_null_constraint :project_import_export_relation_export_upload_uploads, :project_id + add_not_null_constraint :project_import_export_relation_export_upload_uploads, :project_id end def down - # remove_not_null_constraint :project_import_export_relation_export_upload_uploads, :project_id + remove_not_null_constraint :project_import_export_relation_export_upload_uploads, :project_id end end diff --git a/db/post_migrate/20250728034316_project_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728034316_project_uploads_sharding_keys_not_null.rb index 63cd848a3c0d40..680fb559917b77 100644 --- a/db/post_migrate/20250728034316_project_uploads_sharding_keys_not_null.rb +++ b/db/post_migrate/20250728034316_project_uploads_sharding_keys_not_null.rb @@ -5,10 +5,10 @@ class ProjectUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] disable_ddl_transaction! def up - # add_not_null_constraint :project_uploads, :project_id + add_not_null_constraint :project_uploads, :project_id end def down - # remove_not_null_constraint :project_uploads, :project_id + remove_not_null_constraint :project_uploads, :project_id end end diff --git a/db/structure.sql b/db/structure.sql index 5c3a3143ecdeb0..50b3395da914df 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -11278,6 +11278,7 @@ CREATE TABLE bulk_import_export_upload_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), + CONSTRAINT check_4206751511 CHECK ((num_nonnulls(namespace_id, organization_id, project_id) = 1)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -16632,6 +16633,7 @@ CREATE TABLE issuable_metric_image_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), + CONSTRAINT check_5bfdc76f5c CHECK ((namespace_id IS NOT NULL)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -21807,6 +21809,7 @@ CREATE TABLE project_import_export_relation_export_upload_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), + CONSTRAINT check_3802d7ee83 CHECK ((project_id IS NOT NULL)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -22327,7 +22330,8 @@ CREATE TABLE project_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), - CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) + CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)), + CONSTRAINT check_d5b2a170a1 CHECK ((project_id IS NOT NULL)) ); CREATE TABLE project_wiki_repositories ( -- GitLab From dc36506d1219fe11d30ea9481e12e4a4b7fced50 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 5 Aug 2025 14:59:46 +1200 Subject: [PATCH 7/7] WIP: Disable all problematic - bulk_import_export_upload_uploads - issuable_metric_image_uploads - project_import_export_relation_export_upload_uploads - project_uploads --- ...k_import_export_upload_uploads_sharding_keys_not_null.rb | 4 ++-- ..._issuable_metric_image_uploads_sharding_keys_not_null.rb | 4 ++-- ...relation_export_upload_uploads_sharding_keys_not_null.rb | 4 ++-- ...20250728034316_project_uploads_sharding_keys_not_null.rb | 4 ++-- db/structure.sql | 6 +----- 5 files changed, 9 insertions(+), 13 deletions(-) diff --git a/db/post_migrate/20250728025316_bulk_import_export_upload_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728025316_bulk_import_export_upload_uploads_sharding_keys_not_null.rb index 89f08ab87837f6..de4daa2f9f8cab 100644 --- a/db/post_migrate/20250728025316_bulk_import_export_upload_uploads_sharding_keys_not_null.rb +++ b/db/post_migrate/20250728025316_bulk_import_export_upload_uploads_sharding_keys_not_null.rb @@ -5,10 +5,10 @@ class BulkImportExportUploadUploadsShardingKeysNotNull < Gitlab::Database::Migra disable_ddl_transaction! def up - add_multi_column_not_null_constraint(:bulk_import_export_upload_uploads, :namespace_id, :organization_id, :project_id) + # add_multi_column_not_null_constraint(:bulk_import_export_upload_uploads, :namespace_id, :organization_id, :project_id) end def down - remove_multi_column_not_null_constraint(:bulk_import_export_upload_uploads, :namespace_id, :organization_id, :project_id) + # remove_multi_column_not_null_constraint(:bulk_import_export_upload_uploads, :namespace_id, :organization_id, :project_id) end end diff --git a/db/post_migrate/20250728031816_issuable_metric_image_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728031816_issuable_metric_image_uploads_sharding_keys_not_null.rb index bbfe1f2fa0e45b..2d13606f9bc92c 100644 --- a/db/post_migrate/20250728031816_issuable_metric_image_uploads_sharding_keys_not_null.rb +++ b/db/post_migrate/20250728031816_issuable_metric_image_uploads_sharding_keys_not_null.rb @@ -5,10 +5,10 @@ class IssuableMetricImageUploadsShardingKeysNotNull < Gitlab::Database::Migratio disable_ddl_transaction! def up - add_not_null_constraint :issuable_metric_image_uploads, :namespace_id + # add_not_null_constraint :issuable_metric_image_uploads, :namespace_id end def down - remove_not_null_constraint :issuable_metric_image_uploads, :namespace_id + # remove_not_null_constraint :issuable_metric_image_uploads, :namespace_id end end diff --git a/db/post_migrate/20250728033316_project_import_export_relation_export_upload_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728033316_project_import_export_relation_export_upload_uploads_sharding_keys_not_null.rb index 0e0014cc6fef58..a48114253b9ea8 100644 --- a/db/post_migrate/20250728033316_project_import_export_relation_export_upload_uploads_sharding_keys_not_null.rb +++ b/db/post_migrate/20250728033316_project_import_export_relation_export_upload_uploads_sharding_keys_not_null.rb @@ -5,10 +5,10 @@ class ProjectImportExportRelationExportUploadUploadsShardingKeysNotNull < Gitlab disable_ddl_transaction! def up - add_not_null_constraint :project_import_export_relation_export_upload_uploads, :project_id + # add_not_null_constraint :project_import_export_relation_export_upload_uploads, :project_id end def down - remove_not_null_constraint :project_import_export_relation_export_upload_uploads, :project_id + # remove_not_null_constraint :project_import_export_relation_export_upload_uploads, :project_id end end diff --git a/db/post_migrate/20250728034316_project_uploads_sharding_keys_not_null.rb b/db/post_migrate/20250728034316_project_uploads_sharding_keys_not_null.rb index 680fb559917b77..63cd848a3c0d40 100644 --- a/db/post_migrate/20250728034316_project_uploads_sharding_keys_not_null.rb +++ b/db/post_migrate/20250728034316_project_uploads_sharding_keys_not_null.rb @@ -5,10 +5,10 @@ class ProjectUploadsShardingKeysNotNull < Gitlab::Database::Migration[2.3] disable_ddl_transaction! def up - add_not_null_constraint :project_uploads, :project_id + # add_not_null_constraint :project_uploads, :project_id end def down - remove_not_null_constraint :project_uploads, :project_id + # remove_not_null_constraint :project_uploads, :project_id end end diff --git a/db/structure.sql b/db/structure.sql index 50b3395da914df..5c3a3143ecdeb0 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -11278,7 +11278,6 @@ CREATE TABLE bulk_import_export_upload_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), - CONSTRAINT check_4206751511 CHECK ((num_nonnulls(namespace_id, organization_id, project_id) = 1)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -16633,7 +16632,6 @@ CREATE TABLE issuable_metric_image_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), - CONSTRAINT check_5bfdc76f5c CHECK ((namespace_id IS NOT NULL)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -21809,7 +21807,6 @@ CREATE TABLE project_import_export_relation_export_upload_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), - CONSTRAINT check_3802d7ee83 CHECK ((project_id IS NOT NULL)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -22330,8 +22327,7 @@ CREATE TABLE project_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), - CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)), - CONSTRAINT check_d5b2a170a1 CHECK ((project_id IS NOT NULL)) + CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); CREATE TABLE project_wiki_repositories ( -- GitLab