diff --git a/db/docs/user_uploads.yml b/db/docs/user_uploads.yml index 7b5676c452dafc3a0c5292bb317e9f5f1372eab9..9bbdbaf98465c24166403257d4f462a19e777c77 100644 --- a/db/docs/user_uploads.yml +++ b/db/docs/user_uploads.yml @@ -9,6 +9,6 @@ description: Stores uploads for User model introduced_by_url: milestone: '17.11' table_size: small -gitlab_schema: gitlab_main_user +gitlab_schema: gitlab_main_org sharding_key: organization_id: organizations diff --git a/db/migrate/20251118193642_truncate_uploads_9ba88c4165.rb b/db/migrate/20251118193642_truncate_uploads_9ba88c4165.rb new file mode 100644 index 0000000000000000000000000000000000000000..cbcad1ab5af03c770a2ba603dbf24b6e676dc74a --- /dev/null +++ b/db/migrate/20251118193642_truncate_uploads_9ba88c4165.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +class TruncateUploads9ba88c4165 < Gitlab::Database::Migration[2.3] + disable_ddl_transaction! + milestone '18.7' + + def up + # NOTE: following https://docs.gitlab.com/development/migration_style_guide/#truncate-a-table + # and the proposal in https://gitlab.com/gitlab-org/gitlab/-/issues/398199#proposal + truncate_tables!('uploads_9ba88c4165') + end + + def down + # no-op + end +end diff --git a/db/migrate/20251118201235_add_not_null_constraint_on_abuse_report_uploads_sharding_key.rb b/db/migrate/20251118201235_add_not_null_constraint_on_abuse_report_uploads_sharding_key.rb new file mode 100644 index 0000000000000000000000000000000000000000..3fc03fce7de59e00622c9e59ef4da285ef35c88c --- /dev/null +++ b/db/migrate/20251118201235_add_not_null_constraint_on_abuse_report_uploads_sharding_key.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddNotNullConstraintOnAbuseReportUploadsShardingKey < Gitlab::Database::Migration[2.3] + disable_ddl_transaction! + milestone '18.7' + + def up + add_not_null_constraint(:abuse_report_uploads, :organization_id) + end + + def down + remove_not_null_constraint(:abuse_report_uploads, :organization_id) + end +end diff --git a/db/migrate/20251118202614_add_not_null_constraint_on_achievement_uploads_sharding_key.rb b/db/migrate/20251118202614_add_not_null_constraint_on_achievement_uploads_sharding_key.rb new file mode 100644 index 0000000000000000000000000000000000000000..fc85d750f11ffab5fa49550f967bbc13b8635ef2 --- /dev/null +++ b/db/migrate/20251118202614_add_not_null_constraint_on_achievement_uploads_sharding_key.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddNotNullConstraintOnAchievementUploadsShardingKey < Gitlab::Database::Migration[2.3] + disable_ddl_transaction! + milestone '18.7' + + 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/migrate/20251118203155_add_not_null_constraint_on_ai_vectorizable_files_uploads_sharding_key.rb b/db/migrate/20251118203155_add_not_null_constraint_on_ai_vectorizable_files_uploads_sharding_key.rb new file mode 100644 index 0000000000000000000000000000000000000000..c4913e341001075a7fa55fdeda9f61e3f78eed4d --- /dev/null +++ b/db/migrate/20251118203155_add_not_null_constraint_on_ai_vectorizable_files_uploads_sharding_key.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddNotNullConstraintOnAiVectorizableFilesUploadsShardingKey < Gitlab::Database::Migration[2.3] + disable_ddl_transaction! + milestone '18.7' + + 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/migrate/20251118204232_add_not_null_constraint_on_amamiu_sharding_key.rb b/db/migrate/20251118204232_add_not_null_constraint_on_amamiu_sharding_key.rb new file mode 100644 index 0000000000000000000000000000000000000000..eec4a876f03473174e163302c817b8f2f27dc27f --- /dev/null +++ b/db/migrate/20251118204232_add_not_null_constraint_on_amamiu_sharding_key.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +class AddNotNullConstraintOnAmamiuShardingKey < Gitlab::Database::Migration[2.3] + # NOTE: Shortening the file name per Cop/FilenameLength: This file name is too long. It should be 100 or less + disable_ddl_transaction! + milestone '18.7' + + 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/migrate/20251118204754_add_not_null_constraint_on_bulk_import_export_upload_uploads_sharding_key.rb b/db/migrate/20251118204754_add_not_null_constraint_on_bulk_import_export_upload_uploads_sharding_key.rb new file mode 100644 index 0000000000000000000000000000000000000000..db35d8b63f2ec0e827530dc520f00d54fcee6662 --- /dev/null +++ b/db/migrate/20251118204754_add_not_null_constraint_on_bulk_import_export_upload_uploads_sharding_key.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddNotNullConstraintOnBulkImportExportUploadUploadsShardingKey < Gitlab::Database::Migration[2.3] + disable_ddl_transaction! + milestone '18.7' + + def up + add_multi_column_not_null_constraint(:bulk_import_export_upload_uploads, :project_id, :namespace_id) + end + + def down + remove_multi_column_not_null_constraint(:bulk_import_export_upload_uploads, :project_id, :namespace_id) + end +end diff --git a/db/migrate/20251118211950_add_not_null_constraint_on_dependency_list_export_part_uploads_sharding_key.rb b/db/migrate/20251118211950_add_not_null_constraint_on_dependency_list_export_part_uploads_sharding_key.rb new file mode 100644 index 0000000000000000000000000000000000000000..03d8725764879c6f9a1f56f30b69f8506bef4407 --- /dev/null +++ b/db/migrate/20251118211950_add_not_null_constraint_on_dependency_list_export_part_uploads_sharding_key.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddNotNullConstraintOnDependencyListExportPartUploadsShardingKey < Gitlab::Database::Migration[2.3] + disable_ddl_transaction! + milestone '18.7' + + 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/migrate/20251118213826_add_not_null_constraint_on_dependency_list_export_uploads_sharding_key.rb b/db/migrate/20251118213826_add_not_null_constraint_on_dependency_list_export_uploads_sharding_key.rb new file mode 100644 index 0000000000000000000000000000000000000000..c47cb9f4f54bb83413e9c57eb579d09fff6e6870 --- /dev/null +++ b/db/migrate/20251118213826_add_not_null_constraint_on_dependency_list_export_uploads_sharding_key.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +class AddNotNullConstraintOnDependencyListExportUploadsShardingKey < Gitlab::Database::Migration[2.3] + disable_ddl_transaction! + milestone '18.7' + + def up + add_multi_column_not_null_constraint( + :dependency_list_export_uploads, + :project_id, :namespace_id, :organization_id, + operator: '>', limit: 0 # NOTE: reflecting the selection of the parent https://gitlab.com/gitlab-org/gitlab/-/merge_requests/172178/diffs + ) + end + + def down + remove_multi_column_not_null_constraint( + :dependency_list_export_uploads, + :project_id, :namespace_id, :organization_id + ) + end +end diff --git a/db/migrate/20251118214434_add_not_null_constraint_on_design_management_action_uploads_sharding_key.rb b/db/migrate/20251118214434_add_not_null_constraint_on_design_management_action_uploads_sharding_key.rb new file mode 100644 index 0000000000000000000000000000000000000000..6d4d313aa1d353e82ce2f2db84666c4ff2a70f01 --- /dev/null +++ b/db/migrate/20251118214434_add_not_null_constraint_on_design_management_action_uploads_sharding_key.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddNotNullConstraintOnDesignManagementActionUploadsShardingKey < Gitlab::Database::Migration[2.3] + disable_ddl_transaction! + milestone '18.7' + + 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/migrate/20251118214846_add_not_null_constraint_on_import_export_upload_uploads_sharding_key.rb b/db/migrate/20251118214846_add_not_null_constraint_on_import_export_upload_uploads_sharding_key.rb new file mode 100644 index 0000000000000000000000000000000000000000..e0832491b5daa8192076276394fb424f9931cbf2 --- /dev/null +++ b/db/migrate/20251118214846_add_not_null_constraint_on_import_export_upload_uploads_sharding_key.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddNotNullConstraintOnImportExportUploadUploadsShardingKey < Gitlab::Database::Migration[2.3] + disable_ddl_transaction! + milestone '18.7' + + def up + add_multi_column_not_null_constraint(:import_export_upload_uploads, :project_id, :namespace_id) + end + + def down + remove_multi_column_not_null_constraint(:import_export_upload_uploads, :project_id, :namespace_id) + end +end diff --git a/db/migrate/20251118215626_add_not_null_constraint_on_issuable_metric_image_uploads_sharding_key.rb b/db/migrate/20251118215626_add_not_null_constraint_on_issuable_metric_image_uploads_sharding_key.rb new file mode 100644 index 0000000000000000000000000000000000000000..23cb7c7998f0f51be17b992a784289061f852e6a --- /dev/null +++ b/db/migrate/20251118215626_add_not_null_constraint_on_issuable_metric_image_uploads_sharding_key.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddNotNullConstraintOnIssuableMetricImageUploadsShardingKey < Gitlab::Database::Migration[2.3] + disable_ddl_transaction! + milestone '18.7' + + 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/migrate/20251118215953_add_not_null_constraint_on_namespace_uploads_sharding_key.rb b/db/migrate/20251118215953_add_not_null_constraint_on_namespace_uploads_sharding_key.rb new file mode 100644 index 0000000000000000000000000000000000000000..2baf46dcbfba6137850437c84a032def1b406d88 --- /dev/null +++ b/db/migrate/20251118215953_add_not_null_constraint_on_namespace_uploads_sharding_key.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddNotNullConstraintOnNamespaceUploadsShardingKey < Gitlab::Database::Migration[2.3] + disable_ddl_transaction! + milestone '18.7' + + 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/migrate/20251118220333_add_not_null_constraint_on_organization_detail_uploads_sharding_key.rb b/db/migrate/20251118220333_add_not_null_constraint_on_organization_detail_uploads_sharding_key.rb new file mode 100644 index 0000000000000000000000000000000000000000..9c645f76092bed44f0e8e07f8ec89c40abb28d19 --- /dev/null +++ b/db/migrate/20251118220333_add_not_null_constraint_on_organization_detail_uploads_sharding_key.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddNotNullConstraintOnOrganizationDetailUploadsShardingKey < Gitlab::Database::Migration[2.3] + disable_ddl_transaction! + milestone '18.7' + + 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/migrate/20251118220724_add_not_null_constraint_on_piereuu_sharding_key.rb b/db/migrate/20251118220724_add_not_null_constraint_on_piereuu_sharding_key.rb new file mode 100644 index 0000000000000000000000000000000000000000..d803d18426f1fda1fa4b3649a8a77000a502052c --- /dev/null +++ b/db/migrate/20251118220724_add_not_null_constraint_on_piereuu_sharding_key.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddNotNullConstraintOnPiereuuShardingKey < Gitlab::Database::Migration[2.3] + disable_ddl_transaction! + milestone '18.7' + + 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/migrate/20251118230157_add_not_null_constraint_on_project_topic_uploads_sharding_key.rb b/db/migrate/20251118230157_add_not_null_constraint_on_project_topic_uploads_sharding_key.rb new file mode 100644 index 0000000000000000000000000000000000000000..59276249b8a61939cc690f65dd3da3bbf2ff7add --- /dev/null +++ b/db/migrate/20251118230157_add_not_null_constraint_on_project_topic_uploads_sharding_key.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddNotNullConstraintOnProjectTopicUploadsShardingKey < Gitlab::Database::Migration[2.3] + disable_ddl_transaction! + milestone '18.7' + + 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/migrate/20251118230711_add_not_null_constraint_on_project_uploads_sharding_key.rb b/db/migrate/20251118230711_add_not_null_constraint_on_project_uploads_sharding_key.rb new file mode 100644 index 0000000000000000000000000000000000000000..6ef867bf7e98822232de30a59e09d5f595e0517f --- /dev/null +++ b/db/migrate/20251118230711_add_not_null_constraint_on_project_uploads_sharding_key.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddNotNullConstraintOnProjectUploadsShardingKey < Gitlab::Database::Migration[2.3] + disable_ddl_transaction! + milestone '18.7' + + 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/migrate/20251118231032_add_not_null_constraint_on_snippet_uploads_sharding_key.rb b/db/migrate/20251118231032_add_not_null_constraint_on_snippet_uploads_sharding_key.rb new file mode 100644 index 0000000000000000000000000000000000000000..1e0cec6aa8fd57f0c4b46d5b520837a9f7ef2c60 --- /dev/null +++ b/db/migrate/20251118231032_add_not_null_constraint_on_snippet_uploads_sharding_key.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddNotNullConstraintOnSnippetUploadsShardingKey < Gitlab::Database::Migration[2.3] + disable_ddl_transaction! + milestone '18.7' + + 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/migrate/20251118231351_add_not_null_constraint_on_user_permission_export_upload_uploads_sharding_key.rb b/db/migrate/20251118231351_add_not_null_constraint_on_user_permission_export_upload_uploads_sharding_key.rb new file mode 100644 index 0000000000000000000000000000000000000000..f235773d4dc3a828c6bd47c0e31c674769eb59bb --- /dev/null +++ b/db/migrate/20251118231351_add_not_null_constraint_on_user_permission_export_upload_uploads_sharding_key.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddNotNullConstraintOnUserPermissionExportUploadUploadsShardingKey < Gitlab::Database::Migration[2.3] + disable_ddl_transaction! + milestone '18.7' + + def up + add_not_null_constraint(:user_permission_export_upload_uploads, :uploaded_by_user_id) + end + + def down + remove_not_null_constraint(:user_permission_export_upload_uploads, :uploaded_by_user_id) + end +end diff --git a/db/migrate/20251118231716_add_not_null_constraint_on_user_uploads_sharding_key.rb b/db/migrate/20251118231716_add_not_null_constraint_on_user_uploads_sharding_key.rb new file mode 100644 index 0000000000000000000000000000000000000000..00ddc20159235c9ca909ce99b49b8cbc3cec229d --- /dev/null +++ b/db/migrate/20251118231716_add_not_null_constraint_on_user_uploads_sharding_key.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddNotNullConstraintOnUserUploadsShardingKey < Gitlab::Database::Migration[2.3] + disable_ddl_transaction! + milestone '18.7' + + def up + add_not_null_constraint(:user_uploads, :organization_id) + end + + def down + remove_not_null_constraint(:user_uploads, :organization_id) + end +end diff --git a/db/migrate/20251118232058_add_not_null_constraint_on_vulnerability_archive_export_uploads_sharding_key.rb b/db/migrate/20251118232058_add_not_null_constraint_on_vulnerability_archive_export_uploads_sharding_key.rb new file mode 100644 index 0000000000000000000000000000000000000000..edc017fe82a1d2033295c92c5b0111e5b37f85f3 --- /dev/null +++ b/db/migrate/20251118232058_add_not_null_constraint_on_vulnerability_archive_export_uploads_sharding_key.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddNotNullConstraintOnVulnerabilityArchiveExportUploadsShardingKey < Gitlab::Database::Migration[2.3] + disable_ddl_transaction! + milestone '18.7' + + 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/migrate/20251118232420_add_not_null_constraint_on_vulnerability_export_part_uploads_sharding_key.rb b/db/migrate/20251118232420_add_not_null_constraint_on_vulnerability_export_part_uploads_sharding_key.rb new file mode 100644 index 0000000000000000000000000000000000000000..1816fdb198524d225a5d22633c8cbbf09adfc241 --- /dev/null +++ b/db/migrate/20251118232420_add_not_null_constraint_on_vulnerability_export_part_uploads_sharding_key.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddNotNullConstraintOnVulnerabilityExportPartUploadsShardingKey < Gitlab::Database::Migration[2.3] + disable_ddl_transaction! + milestone '18.7' + + 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/migrate/20251118232704_add_not_null_constraint_on_vulnerability_export_uploads_sharding_key.rb b/db/migrate/20251118232704_add_not_null_constraint_on_vulnerability_export_uploads_sharding_key.rb new file mode 100644 index 0000000000000000000000000000000000000000..2f0230a7aeb6d47181657522c15139046d36bd22 --- /dev/null +++ b/db/migrate/20251118232704_add_not_null_constraint_on_vulnerability_export_uploads_sharding_key.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddNotNullConstraintOnVulnerabilityExportUploadsShardingKey < Gitlab::Database::Migration[2.3] + disable_ddl_transaction! + milestone '18.7' + + 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/migrate/20251118232938_add_not_null_constraint_on_vulnerability_remediation_uploads_sharding_key.rb b/db/migrate/20251118232938_add_not_null_constraint_on_vulnerability_remediation_uploads_sharding_key.rb new file mode 100644 index 0000000000000000000000000000000000000000..125e01e545ffdfaf806289b29fb024f3e4baa717 --- /dev/null +++ b/db/migrate/20251118232938_add_not_null_constraint_on_vulnerability_remediation_uploads_sharding_key.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddNotNullConstraintOnVulnerabilityRemediationUploadsShardingKey < Gitlab::Database::Migration[2.3] + disable_ddl_transaction! + milestone '18.7' + + 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/20251118193642 b/db/schema_migrations/20251118193642 new file mode 100644 index 0000000000000000000000000000000000000000..5d42fbda641046878a0756c28fce5c53d8f78b21 --- /dev/null +++ b/db/schema_migrations/20251118193642 @@ -0,0 +1 @@ +e27b8b606c7da9b2d6cbb7410835982857078fdcb8c2dee3aad4dd05f781c3e5 \ No newline at end of file diff --git a/db/schema_migrations/20251118201235 b/db/schema_migrations/20251118201235 new file mode 100644 index 0000000000000000000000000000000000000000..8906ea45002c5554e172036d4181c3b257cde302 --- /dev/null +++ b/db/schema_migrations/20251118201235 @@ -0,0 +1 @@ +8dc771194e71ce838ca4a5f8dfb1a5dbf54b8345443a68f28f16a7e8bfc6e098 \ No newline at end of file diff --git a/db/schema_migrations/20251118202614 b/db/schema_migrations/20251118202614 new file mode 100644 index 0000000000000000000000000000000000000000..5a5583987b5c86ec7d2fee8a6ecbd16eb9228780 --- /dev/null +++ b/db/schema_migrations/20251118202614 @@ -0,0 +1 @@ +07c2d76facb5b3d653d303fc297ee30eb2acb4135a98d86469483491d2969868 \ No newline at end of file diff --git a/db/schema_migrations/20251118203155 b/db/schema_migrations/20251118203155 new file mode 100644 index 0000000000000000000000000000000000000000..878e58a9f8b93117763b8a92e650da60bf3026e0 --- /dev/null +++ b/db/schema_migrations/20251118203155 @@ -0,0 +1 @@ +8a3e3e7a4fb640c68b732f5a412b272beb7cb9d83d76734f53cd2cc40b85bb35 \ No newline at end of file diff --git a/db/schema_migrations/20251118204232 b/db/schema_migrations/20251118204232 new file mode 100644 index 0000000000000000000000000000000000000000..e5d9ff9f67fa30f20b0cf3c6d88e80308d06b7f9 --- /dev/null +++ b/db/schema_migrations/20251118204232 @@ -0,0 +1 @@ +c83ec2ec773e7e4d05163c117bae6eee949e8d0307730a3160fe20033907b6d6 \ No newline at end of file diff --git a/db/schema_migrations/20251118204754 b/db/schema_migrations/20251118204754 new file mode 100644 index 0000000000000000000000000000000000000000..acd339e23f4679c76f52c9dcf9592d69d4678cee --- /dev/null +++ b/db/schema_migrations/20251118204754 @@ -0,0 +1 @@ +8eb557acee78aea0cad298562739bc3d9cad0c742ff9c2347948672a5a975949 \ No newline at end of file diff --git a/db/schema_migrations/20251118211950 b/db/schema_migrations/20251118211950 new file mode 100644 index 0000000000000000000000000000000000000000..d84c40722f667eea99817cbb8e23099c603e4ce5 --- /dev/null +++ b/db/schema_migrations/20251118211950 @@ -0,0 +1 @@ +913456d20d7eb43794232704ff2c005b90961fc5a6742193146ce160b55aeda9 \ No newline at end of file diff --git a/db/schema_migrations/20251118213826 b/db/schema_migrations/20251118213826 new file mode 100644 index 0000000000000000000000000000000000000000..e0ed0d0678820b7c41a7ef73f24e8b8ba6984aa7 --- /dev/null +++ b/db/schema_migrations/20251118213826 @@ -0,0 +1 @@ +3130b663989f9fa9fcf287dff708e3cc888f80fbb01299f065d1b99ed427f80b \ No newline at end of file diff --git a/db/schema_migrations/20251118214434 b/db/schema_migrations/20251118214434 new file mode 100644 index 0000000000000000000000000000000000000000..e433dbe0d85d574e2974fd5e3fe6f12a26f324a6 --- /dev/null +++ b/db/schema_migrations/20251118214434 @@ -0,0 +1 @@ +965101b1fe632eb5fd50c730d21c4cd31a11316fc10dbf865125d1ff02d5c179 \ No newline at end of file diff --git a/db/schema_migrations/20251118214846 b/db/schema_migrations/20251118214846 new file mode 100644 index 0000000000000000000000000000000000000000..32ea658e3e97e536fcfb6cdfd23a894fb1f74ac3 --- /dev/null +++ b/db/schema_migrations/20251118214846 @@ -0,0 +1 @@ +9e6165486b3000601b1c4e35206070482a3b0450b53f5406cae6e5adec044e3b \ No newline at end of file diff --git a/db/schema_migrations/20251118215626 b/db/schema_migrations/20251118215626 new file mode 100644 index 0000000000000000000000000000000000000000..2b9cd7fd20149a3fa7f2a5d743d8005c248b72c2 --- /dev/null +++ b/db/schema_migrations/20251118215626 @@ -0,0 +1 @@ +7091d628b64d7084ae2021ceb65d746aa9222838543697e6668b97abf529601f \ No newline at end of file diff --git a/db/schema_migrations/20251118215953 b/db/schema_migrations/20251118215953 new file mode 100644 index 0000000000000000000000000000000000000000..a75da4c0981cdcf38bdc3ae670487349c610d674 --- /dev/null +++ b/db/schema_migrations/20251118215953 @@ -0,0 +1 @@ +3e482bf464fd22571becd99639c0abdbd05e43e1c93f15355d397219288aceb3 \ No newline at end of file diff --git a/db/schema_migrations/20251118220333 b/db/schema_migrations/20251118220333 new file mode 100644 index 0000000000000000000000000000000000000000..4a64358bb6b2a67d21c3a0dde751d772ca80e9f3 --- /dev/null +++ b/db/schema_migrations/20251118220333 @@ -0,0 +1 @@ +00156e0a4aaeff5b30b51d0e59b6ae30cb6c9559b51c654f2c7526c542b207e9 \ No newline at end of file diff --git a/db/schema_migrations/20251118220724 b/db/schema_migrations/20251118220724 new file mode 100644 index 0000000000000000000000000000000000000000..88c122d4bbd0044e43060575362296aa74afd977 --- /dev/null +++ b/db/schema_migrations/20251118220724 @@ -0,0 +1 @@ +494125cbbe6fe893e6ba413d9486c8e5f5fba87013f26fb5af1bb345e0215edd \ No newline at end of file diff --git a/db/schema_migrations/20251118230157 b/db/schema_migrations/20251118230157 new file mode 100644 index 0000000000000000000000000000000000000000..696cc1d9cde6bf5a4576cbafddee3d0a5f0dfa99 --- /dev/null +++ b/db/schema_migrations/20251118230157 @@ -0,0 +1 @@ +7bd038c7a380cf74499896d5eb3ee0eecde469ffc37a55e8d42696cfa7c5b7f1 \ No newline at end of file diff --git a/db/schema_migrations/20251118230711 b/db/schema_migrations/20251118230711 new file mode 100644 index 0000000000000000000000000000000000000000..0b51313c5b39317cd039075624b37935017cbedf --- /dev/null +++ b/db/schema_migrations/20251118230711 @@ -0,0 +1 @@ +3459f5afeb6443ac00702b04366e5b9cdcfd81061c044a452e6e1e50d79f1757 \ No newline at end of file diff --git a/db/schema_migrations/20251118231032 b/db/schema_migrations/20251118231032 new file mode 100644 index 0000000000000000000000000000000000000000..9b824f68c122a281632571c5566f50cd655a1d07 --- /dev/null +++ b/db/schema_migrations/20251118231032 @@ -0,0 +1 @@ +0ca95c480ab57625cce3f723354e25a65e4d904739d0bd7bbe4a250ec8044b5d \ No newline at end of file diff --git a/db/schema_migrations/20251118231351 b/db/schema_migrations/20251118231351 new file mode 100644 index 0000000000000000000000000000000000000000..b86fccfd1ccc865ceb53460d13fbbe90a5478032 --- /dev/null +++ b/db/schema_migrations/20251118231351 @@ -0,0 +1 @@ +e0fb9f32d09ff441d6f780a00f172c32671529bffe87c1b5d94a74e6510b5294 \ No newline at end of file diff --git a/db/schema_migrations/20251118231716 b/db/schema_migrations/20251118231716 new file mode 100644 index 0000000000000000000000000000000000000000..ce8b3424f1dac407b839305e842c372361e80a24 --- /dev/null +++ b/db/schema_migrations/20251118231716 @@ -0,0 +1 @@ +242c96838722e68d07705de369262719027bf324caf1b2f1265480f7a04f4e4c \ No newline at end of file diff --git a/db/schema_migrations/20251118232058 b/db/schema_migrations/20251118232058 new file mode 100644 index 0000000000000000000000000000000000000000..d8d71550d8e783fd3d6c35b6bc79839aa892560c --- /dev/null +++ b/db/schema_migrations/20251118232058 @@ -0,0 +1 @@ +4fa2e5e3df57d8e5a54455f0bc5742fc44c18a23f2f419b87f1e4d13240dd173 \ No newline at end of file diff --git a/db/schema_migrations/20251118232420 b/db/schema_migrations/20251118232420 new file mode 100644 index 0000000000000000000000000000000000000000..4677e5ab9a81f20f8d17f90a803e6fb9b9185817 --- /dev/null +++ b/db/schema_migrations/20251118232420 @@ -0,0 +1 @@ +74c42054d33372c5ca33abd36f0373af719ce40eb2d03c24f4d8824659af3d1e \ No newline at end of file diff --git a/db/schema_migrations/20251118232704 b/db/schema_migrations/20251118232704 new file mode 100644 index 0000000000000000000000000000000000000000..f6e8df1a01832b38012d91da41db143d1c7e7d66 --- /dev/null +++ b/db/schema_migrations/20251118232704 @@ -0,0 +1 @@ +00968cd12d4162d1e52ffb0dbd988bba04351e633a3d89c5dc0e70f155cbb858 \ No newline at end of file diff --git a/db/schema_migrations/20251118232938 b/db/schema_migrations/20251118232938 new file mode 100644 index 0000000000000000000000000000000000000000..e68f0fc549e8ada99cf145bd37e225098214a2ca --- /dev/null +++ b/db/schema_migrations/20251118232938 @@ -0,0 +1 @@ +1792a458270a48377a3f8e0814bd95f652a4b783ebd9203bf2ea24d6df846db2 \ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index 1bfcc6e7575e28d23c665e76ee00c60b047d9475..77574674ce922785675a1f458f86884f7812ce65 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -10618,6 +10618,7 @@ CREATE TABLE abuse_report_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), + CONSTRAINT check_2db09e0e37 CHECK ((organization_id IS NOT NULL)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -10701,6 +10702,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)) ); @@ -11395,6 +11397,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)) ); @@ -11453,6 +11456,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)) ); @@ -14054,7 +14058,8 @@ CREATE TABLE bulk_import_export_upload_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_fd3aa31edf CHECK ((num_nonnulls(namespace_id, project_id) = 1)) ); CREATE TABLE bulk_import_export_uploads ( @@ -16749,6 +16754,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)) ); @@ -16792,6 +16798,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) > 0)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -17115,6 +17122,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)) ); @@ -18911,6 +18919,7 @@ CREATE TABLE import_export_upload_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), + CONSTRAINT check_5c88ee613c CHECK ((num_nonnulls(namespace_id, project_id) = 1)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -19572,6 +19581,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)) ); @@ -21681,7 +21691,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 @@ -22301,6 +22312,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)) ); @@ -24954,6 +24966,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)) ); @@ -25443,7 +25456,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 ( @@ -25541,7 +25555,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 ( @@ -27494,7 +27509,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 ( @@ -28731,6 +28747,7 @@ CREATE TABLE user_permission_export_upload_uploads ( mount_point text, secret text, CONSTRAINT check_2849dedce7 CHECK ((char_length(path) <= 511)), + CONSTRAINT check_824c448850 CHECK ((uploaded_by_user_id IS NOT NULL)), CONSTRAINT check_b888b1df14 CHECK ((char_length(checksum) <= 64)) ); @@ -28949,7 +28966,8 @@ CREATE TABLE user_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_fa16e4c6ff CHECK ((organization_id IS NOT NULL)) ); CREATE SEQUENCE users_id_seq @@ -29315,6 +29333,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)) ); @@ -29381,7 +29400,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 ( @@ -29423,6 +29443,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)) ); @@ -29922,6 +29943,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)) ); diff --git a/spec/lib/gitlab/background_migration/delete_orphaned_relation_export_uploads_spec.rb b/spec/lib/gitlab/background_migration/delete_orphaned_relation_export_uploads_spec.rb index 7e1246cf4b0b93fa01ef892ae68d45f47d522248..f5aa2c0584088583bd194c2e73d2841c3c30410a 100644 --- a/spec/lib/gitlab/background_migration/delete_orphaned_relation_export_uploads_spec.rb +++ b/spec/lib/gitlab/background_migration/delete_orphaned_relation_export_uploads_spec.rb @@ -80,7 +80,8 @@ uploader: 'ImportExportUploader', path: 'orphaned/path/file1.tar.gz', size: 2048, - store: 1 + store: 1, + project_id: project.id ) end @@ -91,7 +92,8 @@ uploader: 'ImportExportUploader', path: 'orphaned/path/file2.tar.gz', size: 3072, - store: 2 + store: 2, + project_id: project.id ) end diff --git a/spec/lib/gitlab/database/sharding_key_spec.rb b/spec/lib/gitlab/database/sharding_key_spec.rb index 4025996ae62ca59f45a764697d25c2040efcdebd..39525d32da397e7140d22341e5c035563a866c0d 100644 --- a/spec/lib/gitlab/database/sharding_key_spec.rb +++ b/spec/lib/gitlab/database/sharding_key_spec.rb @@ -50,44 +50,12 @@ bulk_import_batch_trackers.namespace_id bulk_import_batch_trackers.project_id ], # https://gitlab.com/gitlab-org/gitlab/-/merge_requests/213933 - *uploads_and_partitions, 'security_scans.project_id', # NOT NULL constraint NOT VALID 'keys.organization_id', # https://gitlab.com/gitlab-org/gitlab/-/issues/577246 'oauth_applications.organization_id' # https://gitlab.com/gitlab-org/gitlab/-/issues/579291 ] end - # The following tables are work in progress as part of - # https://gitlab.com/gitlab-org/gitlab/-/issues/398199 - # TODO: Remove these exceptions once the issue is closed. - let(:uploads_and_partitions) do - %w[ - abuse_report_uploads.organization_id - achievement_uploads.namespace_id - ai_vectorizable_file_uploads.project_id - alert_management_alert_metric_image_uploads.project_id - bulk_import_export_upload_uploads.project_id bulk_import_export_upload_uploads.namespace_id - dependency_list_export_part_uploads.organization_id - dependency_list_export_uploads.organization_id dependency_list_export_uploads.namespace_id - dependency_list_export_uploads.project_id - design_management_action_uploads.namespace_id - import_export_upload_uploads.project_id import_export_upload_uploads.namespace_id - issuable_metric_image_uploads.namespace_id - namespace_uploads.namespace_id - organization_detail_uploads.organization_id - project_import_export_relation_export_upload_uploads.project_id - project_topic_uploads.organization_id - project_uploads.project_id - snippet_uploads.organization_id - user_permission_export_upload_uploads.uploaded_by_user_id - user_uploads.organization_id - vulnerability_export_part_uploads.organization_id - vulnerability_export_uploads.organization_id - vulnerability_archive_export_uploads.project_id - vulnerability_remediation_uploads.project_id - ] - end - # Some reasons to exempt a table: # 1. It has no foreign key for performance reasons # 2. It does not yet have a foreign key as the index is still being backfilled