diff --git a/db/post_migrate/20240122092018_drop_index_from_ci_build_trace_metadata.rb b/db/post_migrate/20240122092018_drop_index_from_ci_build_trace_metadata.rb new file mode 100644 index 0000000000000000000000000000000000000000..32f23b2e7dee6830096c8d0e6158a0f762dc3e52 --- /dev/null +++ b/db/post_migrate/20240122092018_drop_index_from_ci_build_trace_metadata.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +class DropIndexFromCiBuildTraceMetadata < Gitlab::Database::Migration[2.2] + milestone '16.9' + disable_ddl_transaction! + + INDEX_NAME = :index_ci_build_trace_metadata_on_trace_artifact_id + TABLE_NAME = :ci_build_trace_metadata + + def up + remove_concurrent_index_by_name(TABLE_NAME, INDEX_NAME) + end + + def down + add_concurrent_index(TABLE_NAME, :trace_artifact_id, name: INDEX_NAME) + end +end diff --git a/db/post_migrate/20240122092139_remove_fk_from_ci_build_trace_metadata_and_ci_job_artifacts.rb b/db/post_migrate/20240122092139_remove_fk_from_ci_build_trace_metadata_and_ci_job_artifacts.rb new file mode 100644 index 0000000000000000000000000000000000000000..dcc3ef56f17e24e9fe8f6da0a943f50953b48345 --- /dev/null +++ b/db/post_migrate/20240122092139_remove_fk_from_ci_build_trace_metadata_and_ci_job_artifacts.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +class RemoveFkFromCiBuildTraceMetadataAndCiJobArtifacts < Gitlab::Database::Migration[2.2] + milestone '16.9' + disable_ddl_transaction! + + SOURCE_TABLE_NAME = :ci_build_trace_metadata + TARGET_TABLE_NAME = :ci_job_artifacts + COLUMN = :trace_artifact_id + TARGET_COLUMN = :id + FK_NAME = :fk_21d25cac1a + + def up + with_lock_retries do + remove_foreign_key_if_exists( + SOURCE_TABLE_NAME, + TARGET_TABLE_NAME, + name: FK_NAME, + reverse_lock_order: true + ) + end + end + + def down + add_concurrent_foreign_key( + SOURCE_TABLE_NAME, + TARGET_TABLE_NAME, + column: COLUMN, + target_column: TARGET_COLUMN, + validate: true, + reverse_lock_order: true, + on_delete: :cascade, + name: FK_NAME + ) + end +end diff --git a/db/schema_migrations/20240122092018 b/db/schema_migrations/20240122092018 new file mode 100644 index 0000000000000000000000000000000000000000..5cea288ffd89549c8b220aa6859a6dd2392eeda4 --- /dev/null +++ b/db/schema_migrations/20240122092018 @@ -0,0 +1 @@ +943cb1f5cd218199a2c4b36f7073d42f6ec7ceace21311e8cbeb6026578db3e5 \ No newline at end of file diff --git a/db/schema_migrations/20240122092139 b/db/schema_migrations/20240122092139 new file mode 100644 index 0000000000000000000000000000000000000000..9738f97816060b14e4753c55ba98105e7e370c73 --- /dev/null +++ b/db/schema_migrations/20240122092139 @@ -0,0 +1 @@ +934bd0403c967d97ea8404fd14a4b6b6e4654570322d59482301bbb88c534a64 \ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index 182e150704ea24ec176055f72df407638e0c49c6..5a0727370e6d04306b7227037d60634280c71c2e 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -32822,8 +32822,6 @@ CREATE INDEX index_ci_build_trace_chunks_on_partition_id_build_id ON ci_build_tr CREATE UNIQUE INDEX index_ci_build_trace_metadata_on_partition_id_build_id ON ci_build_trace_metadata USING btree (partition_id, build_id); -CREATE INDEX index_ci_build_trace_metadata_on_trace_artifact_id ON ci_build_trace_metadata USING btree (trace_artifact_id); - CREATE INDEX index_ci_build_trace_metadata_on_trace_artifact_id_partition_id ON ci_build_trace_metadata USING btree (trace_artifact_id, partition_id); CREATE INDEX p_ci_builds_metadata_build_id_idx ON ONLY p_ci_builds_metadata USING btree (build_id) WHERE (has_exposed_artifacts IS TRUE); @@ -38220,9 +38218,6 @@ ALTER TABLE ONLY coverage_fuzzing_corpuses ALTER TABLE ONLY namespace_settings ADD CONSTRAINT fk_20cf0eb2f9 FOREIGN KEY (default_compliance_framework_id) REFERENCES compliance_management_frameworks(id) ON DELETE SET NULL; -ALTER TABLE ONLY ci_build_trace_metadata - ADD CONSTRAINT fk_21d25cac1a FOREIGN KEY (trace_artifact_id) REFERENCES ci_job_artifacts(id) ON DELETE CASCADE; - ALTER TABLE ONLY ci_build_trace_metadata ADD CONSTRAINT fk_21d25cac1a_p FOREIGN KEY (partition_id, trace_artifact_id) REFERENCES ci_job_artifacts(partition_id, id) ON UPDATE CASCADE ON DELETE CASCADE; diff --git a/spec/support/helpers/database/duplicate_indexes.yml b/spec/support/helpers/database/duplicate_indexes.yml index 29e1c1da245416b1f9429fa88e22961e201d4a35..7064ce0dcf6d863fa82608f5de7530524663193c 100644 --- a/spec/support/helpers/database/duplicate_indexes.yml +++ b/spec/support/helpers/database/duplicate_indexes.yml @@ -27,9 +27,6 @@ boards_epic_board_recent_visits: boards_epic_user_preferences: index_boards_epic_user_preferences_on_board_user_epic_unique: - index_boards_epic_user_preferences_on_board_id -ci_build_trace_metadata: - index_ci_build_trace_metadata_on_trace_artifact_id: - - index_ci_build_trace_metadata_on_trace_artifact_id_partition_id ci_job_artifacts: index_ci_job_artifacts_on_id_project_id_and_created_at: - index_ci_job_artifacts_on_project_id