From 8a280cc82aac0bc2e1db8880afe78a6b2ee7b51e Mon Sep 17 00:00:00 2001 From: Missy Davies <ms.melissadavies@gmail.com> Date: Mon, 19 Feb 2024 13:27:43 +0000 Subject: [PATCH] Remove the user_interacted_projects table Changelog: removed --- .../user_interacted_projects.yml | 2 ++ ...e_foreign_keys_user_interacted_projects.rb | 30 +++++++++++++++++++ ...947_drop_user_interacted_projects_table.rb | 27 +++++++++++++++++ db/schema_migrations/20240212200632 | 1 + db/schema_migrations/20240212200947 | 1 + db/structure.sql | 16 ---------- 6 files changed, 61 insertions(+), 16 deletions(-) rename db/docs/{ => deleted_tables}/user_interacted_projects.yml (82%) create mode 100644 db/post_migrate/20240212200632_remove_foreign_keys_user_interacted_projects.rb create mode 100644 db/post_migrate/20240212200947_drop_user_interacted_projects_table.rb create mode 100644 db/schema_migrations/20240212200632 create mode 100644 db/schema_migrations/20240212200947 diff --git a/db/docs/user_interacted_projects.yml b/db/docs/deleted_tables/user_interacted_projects.yml similarity index 82% rename from db/docs/user_interacted_projects.yml rename to db/docs/deleted_tables/user_interacted_projects.yml index c93a97bba8f09..7d58cec6e3c73 100644 --- a/db/docs/user_interacted_projects.yml +++ b/db/docs/deleted_tables/user_interacted_projects.yml @@ -16,3 +16,5 @@ allow_cross_foreign_keys: - gitlab_main_clusterwide sharding_key: project_id: projects +removed_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139630 +removed_in_milestone: '16.10' diff --git a/db/post_migrate/20240212200632_remove_foreign_keys_user_interacted_projects.rb b/db/post_migrate/20240212200632_remove_foreign_keys_user_interacted_projects.rb new file mode 100644 index 0000000000000..64df9755116c6 --- /dev/null +++ b/db/post_migrate/20240212200632_remove_foreign_keys_user_interacted_projects.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +class RemoveForeignKeysUserInteractedProjects < Gitlab::Database::Migration[2.2] + milestone '16.10' + + disable_ddl_transaction! + + FOREIGN_KEY_NAME_USERS = "fk_0894651f08" + FOREIGN_KEY_NAME_PROJECTS = "fk_722ceba4f7" + + def up + with_lock_retries do + remove_foreign_key_if_exists(:user_interacted_projects, :users, + name: FOREIGN_KEY_NAME_USERS, reverse_lock_order: true) + + remove_foreign_key_if_exists(:user_interacted_projects, :projects, + name: FOREIGN_KEY_NAME_PROJECTS, reverse_lock_order: true) + end + end + + def down + add_concurrent_foreign_key(:user_interacted_projects, :users, + name: FOREIGN_KEY_NAME_USERS, column: :user_id, + target_column: :id, on_delete: :cascade) + + add_concurrent_foreign_key(:user_interacted_projects, :projects, + name: FOREIGN_KEY_NAME_PROJECTS, column: :project_id, + target_column: :id, on_delete: :cascade) + end +end diff --git a/db/post_migrate/20240212200947_drop_user_interacted_projects_table.rb b/db/post_migrate/20240212200947_drop_user_interacted_projects_table.rb new file mode 100644 index 0000000000000..b9751a28ade8e --- /dev/null +++ b/db/post_migrate/20240212200947_drop_user_interacted_projects_table.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +class DropUserInteractedProjectsTable < Gitlab::Database::Migration[2.2] + milestone '16.10' + + disable_ddl_transaction! + + TABLE_NAME = 'user_interacted_projects' + INDEX_NAME = 'index_user_interacted_projects_on_user_id' + PRIMARY_KEY_CONSTRAINT = 'user_interacted_projects_pkey' + + def up + drop_table :user_interacted_projects + end + + def down + unless table_exists?(:user_interacted_projects) + create_table :user_interacted_projects, id: false do |t| + t.integer :user_id, null: false + t.integer :project_id, null: false + t.index :user_id, name: INDEX_NAME + end + end + + execute "ALTER TABLE #{TABLE_NAME} ADD CONSTRAINT #{PRIMARY_KEY_CONSTRAINT} PRIMARY KEY (project_id, user_id)" + end +end diff --git a/db/schema_migrations/20240212200632 b/db/schema_migrations/20240212200632 new file mode 100644 index 0000000000000..742a218090f81 --- /dev/null +++ b/db/schema_migrations/20240212200632 @@ -0,0 +1 @@ +267bb24ca1cf7ff73624ae9b0c7c8b80ee9cdfb2cba77cd21a41304815fda432 \ No newline at end of file diff --git a/db/schema_migrations/20240212200947 b/db/schema_migrations/20240212200947 new file mode 100644 index 0000000000000..70fa043b019ec --- /dev/null +++ b/db/schema_migrations/20240212200947 @@ -0,0 +1 @@ +bbff24ff2d7764f20435d68eb72c15bb885eb7a0474e46e4a57179c14c034b5c \ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index 53acf8d1e8fcf..a1b9a466c854e 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -16621,11 +16621,6 @@ CREATE TABLE user_highest_roles ( highest_access_level integer ); -CREATE TABLE user_interacted_projects ( - user_id integer NOT NULL, - project_id integer NOT NULL -); - CREATE TABLE user_namespace_callouts ( id bigint NOT NULL, user_id bigint NOT NULL, @@ -22003,9 +21998,6 @@ ALTER TABLE ONLY user_group_callouts ALTER TABLE ONLY user_highest_roles ADD CONSTRAINT user_highest_roles_pkey PRIMARY KEY (user_id); -ALTER TABLE ONLY user_interacted_projects - ADD CONSTRAINT user_interacted_projects_pkey PRIMARY KEY (project_id, user_id); - ALTER TABLE ONLY user_namespace_callouts ADD CONSTRAINT user_namespace_callouts_pkey PRIMARY KEY (id); @@ -26985,8 +26977,6 @@ CREATE INDEX index_user_group_callouts_on_group_id ON user_group_callouts USING CREATE INDEX index_user_highest_roles_on_user_id_and_highest_access_level ON user_highest_roles USING btree (user_id, highest_access_level); -CREATE INDEX index_user_interacted_projects_on_user_id ON user_interacted_projects USING btree (user_id); - CREATE INDEX index_user_namespace_callouts_on_namespace_id ON user_namespace_callouts USING btree (namespace_id); CREATE INDEX index_user_permission_export_uploads_on_user_id_and_status ON user_permission_export_uploads USING btree (user_id, status); @@ -29231,9 +29221,6 @@ ALTER TABLE ONLY sbom_occurrences_vulnerabilities ALTER TABLE ONLY abuse_report_user_mentions ADD CONSTRAINT fk_088018ecd8 FOREIGN KEY (abuse_report_id) REFERENCES abuse_reports(id) ON DELETE CASCADE; -ALTER TABLE ONLY user_interacted_projects - ADD CONSTRAINT fk_0894651f08 FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE; - ALTER TABLE ONLY merge_request_assignment_events ADD CONSTRAINT fk_08f7602bfd FOREIGN KEY (merge_request_id) REFERENCES merge_requests(id) ON DELETE CASCADE; @@ -29669,9 +29656,6 @@ ALTER TABLE ONLY protected_branch_push_access_levels ALTER TABLE ONLY integrations ADD CONSTRAINT fk_71cce407f9 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE; -ALTER TABLE ONLY user_interacted_projects - ADD CONSTRAINT fk_722ceba4f7 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE; - ALTER TABLE ONLY subscription_user_add_on_assignments ADD CONSTRAINT fk_724c2df9a8 FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE; -- GitLab