diff --git a/db/post_migrate/20250224074639_add_approvals_project_id_index.rb b/db/post_migrate/20250224074639_add_approvals_project_id_index.rb new file mode 100644 index 0000000000000000000000000000000000000000..afde48c08c4c5b96eac373d3edce220e48b17ed9 --- /dev/null +++ b/db/post_migrate/20250224074639_add_approvals_project_id_index.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +class AddApprovalsProjectIdIndex < Gitlab::Database::Migration[2.2] + disable_ddl_transaction! + milestone '17.10' + + INDEX_NAME = 'index_approvals_on_project_id' + + def up + add_concurrent_index :approvals, :project_id, name: INDEX_NAME + end + + def down + remove_concurrent_index_by_name :approvals, INDEX_NAME + end +end diff --git a/db/post_migrate/20250224074659_add_approvals_project_id_fk.rb b/db/post_migrate/20250224074659_add_approvals_project_id_fk.rb new file mode 100644 index 0000000000000000000000000000000000000000..0c35e3273b3068c55de6a02c5121fc38d51c06dd --- /dev/null +++ b/db/post_migrate/20250224074659_add_approvals_project_id_fk.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +class AddApprovalsProjectIdFk < Gitlab::Database::Migration[2.2] + disable_ddl_transaction! + milestone '17.10' + + def up + add_concurrent_foreign_key :approvals, :projects, column: :project_id, on_delete: :cascade + end + + def down + with_lock_retries do + remove_foreign_key :approvals, column: :project_id + end + end +end diff --git a/db/schema_migrations/20250224074639 b/db/schema_migrations/20250224074639 new file mode 100644 index 0000000000000000000000000000000000000000..9e09a394ef7c8899ff9714ab2a943e9d6d7c18da --- /dev/null +++ b/db/schema_migrations/20250224074639 @@ -0,0 +1 @@ +2631c6b29c8bc28fab1ad8665c076b55938ae7f168bd820bfe8df0327e5f39e5 \ No newline at end of file diff --git a/db/schema_migrations/20250224074659 b/db/schema_migrations/20250224074659 new file mode 100644 index 0000000000000000000000000000000000000000..cccd20668663910c729e8d590b3565b9e8ed3e61 --- /dev/null +++ b/db/schema_migrations/20250224074659 @@ -0,0 +1 @@ +2e50706103444c53aa8d1ade1664ac267253b0edbc3669cb1ce110045d335250 \ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index 5b6ce385a002759f62f4092d3c2305ac680a9323..7aa9e1f8da0e40532f36096791f0e50946de288a 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -31672,6 +31672,8 @@ CREATE INDEX index_approval_rules_code_owners_rule_type ON approval_merge_reques CREATE INDEX index_approvals_on_merge_request_id_and_created_at ON approvals USING btree (merge_request_id, created_at); +CREATE INDEX index_approvals_on_project_id ON approvals USING btree (project_id); + CREATE UNIQUE INDEX index_approvals_on_user_id_and_merge_request_id ON approvals USING btree (user_id, merge_request_id); CREATE INDEX index_approver_groups_on_group_id ON approver_groups USING btree (group_id); @@ -40268,6 +40270,9 @@ ALTER TABLE ONLY user_member_roles ALTER TABLE ONLY boards_epic_board_labels ADD CONSTRAINT fk_cb8ded70e2 FOREIGN KEY (group_id) REFERENCES namespaces(id) ON DELETE CASCADE; +ALTER TABLE ONLY approvals + ADD CONSTRAINT fk_cbce403122 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE; + ALTER TABLE ONLY slack_integrations ADD CONSTRAINT fk_cbe270434e FOREIGN KEY (integration_id) REFERENCES integrations(id) ON DELETE CASCADE;