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 c93a97bba8f0989f84987878a4f12be5e28c1aaf..7d58cec6e3c736691c2229fd9e960eefa28356e2 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 0000000000000000000000000000000000000000..64df9755116c643b3aafede5595ab70298d11962 --- /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 0000000000000000000000000000000000000000..b9751a28ade8e73d73dfe50bf743f18005481a5c --- /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 0000000000000000000000000000000000000000..742a218090f81ec22a119ba06a77f4aa3b1d9ff6 --- /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 0000000000000000000000000000000000000000..70fa043b019ec93934900fbc5bb1cb246ebed36c --- /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 53acf8d1e8fcff0aa9d09de4a92f01d09abe6453..a1b9a466c854e8e30d401fd74c8e5fb7da73ce2a 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;