diff --git a/.rubocop_todo/gitlab/bounded_contexts.yml b/.rubocop_todo/gitlab/bounded_contexts.yml
index 5c9ae67889a1085f8aa0db25c794fea03ccaedaa..af963a004deab232bf8cc70fea98e743dcac4d4e 100644
--- a/.rubocop_todo/gitlab/bounded_contexts.yml
+++ b/.rubocop_todo/gitlab/bounded_contexts.yml
@@ -2984,7 +2984,6 @@ Gitlab/BoundedContexts:
     - 'ee/app/models/ee/resource_milestone_event.rb'
     - 'ee/app/models/ee/resource_state_event.rb'
     - 'ee/app/models/ee/resource_timebox_event.rb'
-    - 'ee/app/models/ee/review.rb'
     - 'ee/app/models/ee/service_desk_setting.rb'
     - 'ee/app/models/ee/snippet.rb'
     - 'ee/app/models/ee/snippet_repository.rb'
@@ -3054,7 +3053,6 @@ Gitlab/BoundedContexts:
     - 'ee/app/models/license.rb'
     - 'ee/app/models/members/member_role.rb'
     - 'ee/app/models/merge_request/predictions.rb'
-    - 'ee/app/models/merge_request/review_llm_summary.rb'
     - 'ee/app/models/merge_request_block.rb'
     - 'ee/app/models/merge_request_diff_detail.rb'
     - 'ee/app/models/namespace_limit.rb'
diff --git a/.rubocop_todo/style/inline_disable_annotation.yml b/.rubocop_todo/style/inline_disable_annotation.yml
index 09522a41e4af4ae3517434ba537d6c542c6e3fbe..b090c46cdd8bf40755e1492b62ccc22fc5aa9162 100644
--- a/.rubocop_todo/style/inline_disable_annotation.yml
+++ b/.rubocop_todo/style/inline_disable_annotation.yml
@@ -1378,7 +1378,6 @@ Style/InlineDisableAnnotation:
     - 'ee/app/models/license.rb'
     - 'ee/app/models/members/member_role.rb'
     - 'ee/app/models/merge_request/predictions.rb'
-    - 'ee/app/models/merge_request/review_llm_summary.rb'
     - 'ee/app/models/merge_requests/compliance_violation.rb'
     - 'ee/app/models/merge_trains/car.rb'
     - 'ee/app/models/package_metadata/package.rb'
diff --git a/db/docs/batched_background_migrations/backfill_merge_request_review_llm_summaries_project_id.yml b/db/docs/batched_background_migrations/backfill_merge_request_review_llm_summaries_project_id.yml
index 6205e3391e9cf084d3675a0763fa402aee756286..16952d1fb9d93c258ffdd724628c652162671ff8 100644
--- a/db/docs/batched_background_migrations/backfill_merge_request_review_llm_summaries_project_id.yml
+++ b/db/docs/batched_background_migrations/backfill_merge_request_review_llm_summaries_project_id.yml
@@ -6,4 +6,4 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156319
 milestone: '17.2'
 queued_migration_version: 20240613154059
 finalize_after: '2024-08-22'
-finalized_by: # version of the migration that finalized this BBM
+finalized_by: 20240703134651
diff --git a/db/docs/merge_request_review_llm_summaries.yml b/db/docs/deleted_tables/merge_request_review_llm_summaries.yml
similarity index 87%
rename from db/docs/merge_request_review_llm_summaries.yml
rename to db/docs/deleted_tables/merge_request_review_llm_summaries.yml
index 5c2b7e60b6ec6c7ca7845ae1c6d300f9ed5968d1..bb8c3ed67842e07a7411a649e7b33be111239b7e 100644
--- a/db/docs/merge_request_review_llm_summaries.yml
+++ b/db/docs/deleted_tables/merge_request_review_llm_summaries.yml
@@ -21,3 +21,5 @@ desired_sharding_key:
         sharding_key: project_id
         belongs_to: review
 desired_sharding_key_migration_job_name: BackfillMergeRequestReviewLlmSummariesProjectId
+removed_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157572
+removed_in_milestone: 17.2
diff --git a/db/post_migrate/20240703134651_finalize_backfill_merge_request_review_llm_summaries_project_id.rb b/db/post_migrate/20240703134651_finalize_backfill_merge_request_review_llm_summaries_project_id.rb
new file mode 100644
index 0000000000000000000000000000000000000000..0565b46c25c00125e9ad418d3377f5cca56c3896
--- /dev/null
+++ b/db/post_migrate/20240703134651_finalize_backfill_merge_request_review_llm_summaries_project_id.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+# See https://docs.gitlab.com/ee/development/migration_style_guide.html
+# for more information on how to write migrations for GitLab.
+
+class FinalizeBackfillMergeRequestReviewLlmSummariesProjectId < Gitlab::Database::Migration[2.2]
+  milestone '17.2'
+  disable_ddl_transaction!
+  restrict_gitlab_migration gitlab_schema: :gitlab_main_cell
+
+  MIGRATION = "BackfillMergeRequestReviewLlmSummariesProjectId"
+
+  def up
+    ensure_batched_background_migration_is_finished(
+      job_class_name: MIGRATION,
+      table_name: :merge_request_review_llm_summaries,
+      column_name: :id,
+      job_arguments: [:project_id, :reviews, :project_id, :review_id],
+      finalize: true
+    )
+  end
+
+  def down
+    # no-op
+  end
+end
diff --git a/db/post_migrate/20240705090747_remove_review_summaries_user_fk.rb b/db/post_migrate/20240705090747_remove_review_summaries_user_fk.rb
new file mode 100644
index 0000000000000000000000000000000000000000..bb023f956b1dcd409c4d339cb2ad61a5284ba7ce
--- /dev/null
+++ b/db/post_migrate/20240705090747_remove_review_summaries_user_fk.rb
@@ -0,0 +1,33 @@
+# frozen_string_literal: true
+
+# See https://docs.gitlab.com/ee/development/migration_style_guide.html
+# for more information on how to write migrations for GitLab.
+
+class RemoveReviewSummariesUserFk < Gitlab::Database::Migration[2.2]
+  milestone '17.2'
+  disable_ddl_transaction!
+
+  OLD_FK_NAME = 'fk_d07eeb6392'
+
+  def up
+    remove_foreign_key_if_exists(
+      :merge_request_review_llm_summaries,
+      :users,
+      column: :user_id,
+      on_delete: :cascade,
+      name: OLD_FK_NAME,
+      reverse_lock_order: true
+    )
+  end
+
+  def down
+    add_concurrent_foreign_key(
+      :merge_request_review_llm_summaries,
+      :users,
+      column: :user_id,
+      on_delete: :cascade,
+      name: OLD_FK_NAME,
+      reverse_lock_order: true
+    )
+  end
+end
diff --git a/db/post_migrate/20240705090811_remove_review_summaries_project_fk.rb b/db/post_migrate/20240705090811_remove_review_summaries_project_fk.rb
new file mode 100644
index 0000000000000000000000000000000000000000..0c7bd3b57009ea85a6b62206f4d405425fc11c11
--- /dev/null
+++ b/db/post_migrate/20240705090811_remove_review_summaries_project_fk.rb
@@ -0,0 +1,30 @@
+# frozen_string_literal: true
+
+class RemoveReviewSummariesProjectFk < Gitlab::Database::Migration[2.2]
+  milestone '17.2'
+  disable_ddl_transaction!
+
+  OLD_FK_NAME = 'fk_a09309bbeb'
+
+  def up
+    remove_foreign_key_if_exists(
+      :merge_request_review_llm_summaries,
+      :projects,
+      column: :project_id,
+      on_delete: :cascade,
+      name: OLD_FK_NAME,
+      reverse_lock_order: true
+    )
+  end
+
+  def down
+    add_concurrent_foreign_key(
+      :merge_request_review_llm_summaries,
+      :projects,
+      column: :project_id,
+      on_delete: :cascade,
+      name: OLD_FK_NAME,
+      reverse_lock_order: true
+    )
+  end
+end
diff --git a/db/post_migrate/20240705091219_remove_review_summaries_mr_diff_fk.rb b/db/post_migrate/20240705091219_remove_review_summaries_mr_diff_fk.rb
new file mode 100644
index 0000000000000000000000000000000000000000..39af8d7f456096688381ba60d890841cd213dac1
--- /dev/null
+++ b/db/post_migrate/20240705091219_remove_review_summaries_mr_diff_fk.rb
@@ -0,0 +1,30 @@
+# frozen_string_literal: true
+
+class RemoveReviewSummariesMrDiffFk < Gitlab::Database::Migration[2.2]
+  milestone '17.2'
+  disable_ddl_transaction!
+
+  OLD_FK_NAME = 'fk_8ec009c6ab'
+
+  def up
+    remove_foreign_key_if_exists(
+      :merge_request_review_llm_summaries,
+      :merge_request_diffs,
+      column: :merge_request_diff_id,
+      on_delete: :cascade,
+      name: OLD_FK_NAME,
+      reverse_lock_order: true
+    )
+  end
+
+  def down
+    add_concurrent_foreign_key(
+      :merge_request_review_llm_summaries,
+      :merge_request_diffs,
+      column: :merge_request_diff_id,
+      on_delete: :cascade,
+      name: OLD_FK_NAME,
+      reverse_lock_order: true
+    )
+  end
+end
diff --git a/db/post_migrate/20240705091240_remove_review_summaries_table.rb b/db/post_migrate/20240705091240_remove_review_summaries_table.rb
new file mode 100644
index 0000000000000000000000000000000000000000..ee33b83d383d7c01933a5977d58f309f044135fe
--- /dev/null
+++ b/db/post_migrate/20240705091240_remove_review_summaries_table.rb
@@ -0,0 +1,46 @@
+# frozen_string_literal: true
+
+# See https://docs.gitlab.com/ee/development/migration_style_guide.html
+# for more information on how to write migrations for GitLab.
+
+class RemoveReviewSummariesTable < Gitlab::Database::Migration[2.2]
+  milestone '17.2'
+  disable_ddl_transaction!
+
+  def up
+    drop_table :merge_request_review_llm_summaries, if_exists: true
+  end
+
+  def down
+    create_table :merge_request_review_llm_summaries, id: :bigserial, force: :cascade do |t|
+      t.bigint :user_id
+      t.bigint :review_id, null: false
+      t.bigint :merge_request_diff_id, null: false
+      t.datetime_with_timezone :created_at, null: false
+      t.datetime_with_timezone :updated_at, null: false
+      t.column :provider, :smallint, null: false
+      t.text :content, null: false, limit: 2056
+      t.integer :cached_markdown_version
+      t.text :content_html
+      t.bigint :project_id
+    end
+
+    add_index :merge_request_review_llm_summaries, :merge_request_diff_id,
+      name: :index_merge_request_review_llm_summaries_on_mr_diff_id
+    add_index :merge_request_review_llm_summaries, :project_id,
+      name: :index_merge_request_review_llm_summaries_on_project_id
+    add_index :merge_request_review_llm_summaries, :review_id,
+      name: :index_merge_request_review_llm_summaries_on_review_id
+    add_index :merge_request_review_llm_summaries, :user_id, name: :index_merge_request_review_llm_summaries_on_user_id
+
+    add_concurrent_foreign_key :merge_request_review_llm_summaries, :reviews, column: :review_id
+
+    install_sharding_key_assignment_trigger(
+      table: :merge_request_review_llm_summaries,
+      sharding_key: :project_id,
+      parent_table: :reviews,
+      parent_sharding_key: :project_id,
+      foreign_key: :review_id
+    )
+  end
+end
diff --git a/db/schema_migrations/20240703134651 b/db/schema_migrations/20240703134651
new file mode 100644
index 0000000000000000000000000000000000000000..2bd9607d6b1260ca7e94212f3fcb78b0818f9b23
--- /dev/null
+++ b/db/schema_migrations/20240703134651
@@ -0,0 +1 @@
+481c5d38392ab53378ef889e8e83e259e604fc6fdc82ac66905f97c0682aa8d6
\ No newline at end of file
diff --git a/db/schema_migrations/20240705090747 b/db/schema_migrations/20240705090747
new file mode 100644
index 0000000000000000000000000000000000000000..52012e3f9d391ed6f6d599c4bfbd8cc89257d7b7
--- /dev/null
+++ b/db/schema_migrations/20240705090747
@@ -0,0 +1 @@
+fcfb75243c3ccc3aec811b5f93104afd6aba60acd00235d393eb630aee44d547
\ No newline at end of file
diff --git a/db/schema_migrations/20240705090811 b/db/schema_migrations/20240705090811
new file mode 100644
index 0000000000000000000000000000000000000000..065c25c2b65c24663c777d6a0798e180cb4268b6
--- /dev/null
+++ b/db/schema_migrations/20240705090811
@@ -0,0 +1 @@
+568e1e0d0c72036794099eaf683695ef3d43e17289419bfc785dbe45dd92087b
\ No newline at end of file
diff --git a/db/schema_migrations/20240705091219 b/db/schema_migrations/20240705091219
new file mode 100644
index 0000000000000000000000000000000000000000..b29b19f87f3de0e6915c6922e21446a79bb5120f
--- /dev/null
+++ b/db/schema_migrations/20240705091219
@@ -0,0 +1 @@
+fabd67297907c8bf15d60d9b5f4058e6cf22d3de094bccc479621b936b12fc50
\ No newline at end of file
diff --git a/db/schema_migrations/20240705091240 b/db/schema_migrations/20240705091240
new file mode 100644
index 0000000000000000000000000000000000000000..5ce99f04b4042d2cf6612e34872c7881800da61a
--- /dev/null
+++ b/db/schema_migrations/20240705091240
@@ -0,0 +1 @@
+42b84b80d2825945901a16f1675865c944a940f4b1d077cab472dbaff92be021
\ No newline at end of file
diff --git a/db/structure.sql b/db/structure.sql
index 671e9130e13c56103fa9f0e660497f8d46260f4c..6f08a7c2e16703cbb1dce5702bb4f99dc0479966 100644
--- a/db/structure.sql
+++ b/db/structure.sql
@@ -12669,30 +12669,6 @@ CREATE SEQUENCE merge_request_requested_changes_id_seq
 
 ALTER SEQUENCE merge_request_requested_changes_id_seq OWNED BY merge_request_requested_changes.id;
 
-CREATE TABLE merge_request_review_llm_summaries (
-    id bigint NOT NULL,
-    user_id bigint,
-    review_id bigint NOT NULL,
-    merge_request_diff_id bigint NOT NULL,
-    created_at timestamp with time zone NOT NULL,
-    updated_at timestamp with time zone NOT NULL,
-    provider smallint NOT NULL,
-    content text NOT NULL,
-    cached_markdown_version integer,
-    content_html text,
-    project_id bigint,
-    CONSTRAINT check_72802358e9 CHECK ((char_length(content) <= 2056))
-);
-
-CREATE SEQUENCE merge_request_review_llm_summaries_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-ALTER SEQUENCE merge_request_review_llm_summaries_id_seq OWNED BY merge_request_review_llm_summaries.id;
-
 CREATE TABLE merge_request_reviewers (
     id bigint NOT NULL,
     user_id bigint NOT NULL,
@@ -21043,8 +21019,6 @@ ALTER TABLE ONLY merge_request_predictions ALTER COLUMN merge_request_id SET DEF
 
 ALTER TABLE ONLY merge_request_requested_changes ALTER COLUMN id SET DEFAULT nextval('merge_request_requested_changes_id_seq'::regclass);
 
-ALTER TABLE ONLY merge_request_review_llm_summaries ALTER COLUMN id SET DEFAULT nextval('merge_request_review_llm_summaries_id_seq'::regclass);
-
 ALTER TABLE ONLY merge_request_reviewers ALTER COLUMN id SET DEFAULT nextval('merge_request_reviewers_id_seq'::regclass);
 
 ALTER TABLE ONLY merge_request_user_mentions ALTER COLUMN id SET DEFAULT nextval('merge_request_user_mentions_id_seq'::regclass);
@@ -23331,9 +23305,6 @@ ALTER TABLE ONLY merge_request_predictions
 ALTER TABLE ONLY merge_request_requested_changes
     ADD CONSTRAINT merge_request_requested_changes_pkey PRIMARY KEY (id);
 
-ALTER TABLE ONLY merge_request_review_llm_summaries
-    ADD CONSTRAINT merge_request_review_llm_summaries_pkey PRIMARY KEY (id);
-
 ALTER TABLE ONLY merge_request_reviewers
     ADD CONSTRAINT merge_request_reviewers_pkey PRIMARY KEY (id);
 
@@ -27845,14 +27816,6 @@ CREATE INDEX index_merge_request_requested_changes_on_project_id ON merge_reques
 
 CREATE INDEX index_merge_request_requested_changes_on_user_id ON merge_request_requested_changes USING btree (user_id);
 
-CREATE INDEX index_merge_request_review_llm_summaries_on_mr_diff_id ON merge_request_review_llm_summaries USING btree (merge_request_diff_id);
-
-CREATE INDEX index_merge_request_review_llm_summaries_on_project_id ON merge_request_review_llm_summaries USING btree (project_id);
-
-CREATE INDEX index_merge_request_review_llm_summaries_on_review_id ON merge_request_review_llm_summaries USING btree (review_id);
-
-CREATE INDEX index_merge_request_review_llm_summaries_on_user_id ON merge_request_review_llm_summaries USING btree (user_id);
-
 CREATE UNIQUE INDEX index_merge_request_reviewers_on_merge_request_id_and_user_id ON merge_request_reviewers USING btree (merge_request_id, user_id);
 
 CREATE INDEX index_merge_request_reviewers_on_project_id ON merge_request_reviewers USING btree (project_id);
@@ -31737,8 +31700,6 @@ CREATE TRIGGER trigger_9699ea03bb37 BEFORE INSERT OR UPDATE ON related_epic_link
 
 CREATE TRIGGER trigger_96a76ee9f147 BEFORE INSERT OR UPDATE ON design_management_versions FOR EACH ROW EXECUTE FUNCTION trigger_96a76ee9f147();
 
-CREATE TRIGGER trigger_98ad3a4c1d35 BEFORE INSERT OR UPDATE ON merge_request_review_llm_summaries FOR EACH ROW EXECUTE FUNCTION trigger_98ad3a4c1d35();
-
 CREATE TRIGGER trigger_9e137c16de79 BEFORE INSERT OR UPDATE ON vulnerability_findings_remediations FOR EACH ROW EXECUTE FUNCTION trigger_9e137c16de79();
 
 CREATE TRIGGER trigger_9f3745f8fe32 BEFORE INSERT OR UPDATE ON merge_requests_closing_issues FOR EACH ROW EXECUTE FUNCTION trigger_9f3745f8fe32();
@@ -32355,9 +32316,6 @@ ALTER TABLE ONLY user_achievements
 ALTER TABLE ONLY merge_requests
     ADD CONSTRAINT fk_6149611a04 FOREIGN KEY (assignee_id) REFERENCES users(id) ON DELETE SET NULL;
 
-ALTER TABLE ONLY merge_request_review_llm_summaries
-    ADD CONSTRAINT fk_6154a9cb89 FOREIGN KEY (review_id) REFERENCES reviews(id) ON DELETE CASCADE;
-
 ALTER TABLE ONLY member_approvals
     ADD CONSTRAINT fk_619f381144 FOREIGN KEY (member_role_id) REFERENCES member_roles(id) ON DELETE SET NULL;
 
@@ -32616,9 +32574,6 @@ ALTER TABLE ONLY releases
 ALTER TABLE ONLY protected_tags
     ADD CONSTRAINT fk_8e4af87648 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
 
-ALTER TABLE ONLY merge_request_review_llm_summaries
-    ADD CONSTRAINT fk_8ec009c6ab FOREIGN KEY (merge_request_diff_id) REFERENCES merge_request_diffs(id) ON DELETE CASCADE;
-
 ALTER TABLE ONLY audit_events_streaming_group_namespace_filters
     ADD CONSTRAINT fk_8ed182d7da FOREIGN KEY (external_streaming_destination_id) REFERENCES audit_events_group_external_streaming_destinations(id) ON DELETE CASCADE;
 
@@ -32703,9 +32658,6 @@ ALTER TABLE ONLY protected_branch_push_access_levels
 ALTER TABLE ONLY deployment_merge_requests
     ADD CONSTRAINT fk_a064ff4453 FOREIGN KEY (environment_id) REFERENCES environments(id) ON DELETE CASCADE;
 
-ALTER TABLE ONLY merge_request_review_llm_summaries
-    ADD CONSTRAINT fk_a09309bbeb FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
-
 ALTER TABLE ONLY issues
     ADD CONSTRAINT fk_a194299be1 FOREIGN KEY (moved_to_id) REFERENCES issues(id) ON DELETE SET NULL;
 
@@ -33015,9 +32967,6 @@ ALTER TABLE ONLY custom_emoji
 ALTER TABLE ONLY bulk_import_entities
     ADD CONSTRAINT fk_d06d023c30 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
 
-ALTER TABLE ONLY merge_request_review_llm_summaries
-    ADD CONSTRAINT fk_d07eeb6392 FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;
-
 ALTER TABLE ONLY project_mirror_data
     ADD CONSTRAINT fk_d1aad367d7 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
 
diff --git a/ee/app/models/ee/merge_request_diff.rb b/ee/app/models/ee/merge_request_diff.rb
index 9a0d2efce06e3e18de288d22e4d783d21580dc00..7fb2b9298656c82cb6080428a335ee273de7df4e 100644
--- a/ee/app/models/ee/merge_request_diff.rb
+++ b/ee/app/models/ee/merge_request_diff.rb
@@ -16,7 +16,6 @@ module MergeRequestDiff
       with_replicator ::Geo::MergeRequestDiffReplicator
 
       has_one :merge_request_diff_detail, autosave: false, inverse_of: :merge_request_diff
-      has_many :merge_request_review_llm_summaries, class_name: 'MergeRequest::ReviewLlmSummary'
 
       after_save :save_verification_details
 
diff --git a/ee/app/models/ee/review.rb b/ee/app/models/ee/review.rb
deleted file mode 100644
index fa48aa0c9cc5117617b0ee9341a79828e5416a39..0000000000000000000000000000000000000000
--- a/ee/app/models/ee/review.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-# frozen_string_literal: true
-
-module EE
-  module Review
-    extend ActiveSupport::Concern
-
-    prepended do
-      has_one :merge_request_review_llm_summary, class_name: 'MergeRequest::ReviewLlmSummary'
-    end
-  end
-end
diff --git a/ee/app/models/merge_request/review_llm_summary.rb b/ee/app/models/merge_request/review_llm_summary.rb
deleted file mode 100644
index adabd13016ac5de6732121a0bb12ed1d615bd385..0000000000000000000000000000000000000000
--- a/ee/app/models/merge_request/review_llm_summary.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-# rubocop:disable Style/ClassAndModuleChildren
-# frozen_string_literal: true
-
-class MergeRequest::ReviewLlmSummary < ApplicationRecord
-  include CacheMarkdownField
-
-  cache_markdown_field :content, issuable_reference_expansion_enabled: true
-
-  belongs_to :review
-  belongs_to :merge_request_diff
-  belongs_to :user, optional: true
-
-  validates :provider, presence: true
-  validates :content, presence: true, length: { maximum: 2056 }
-
-  enum provider: { open_ai: 0, vertex_ai: 1 }
-
-  scope :from_reviewer, ->(reviewer) { joins(:review).where(review: { author_id: reviewer.id }) }
-
-  def reviewer
-    review.author
-  end
-end
-# rubocop:enable Style/ClassAndModuleChildren
diff --git a/ee/spec/factories/merge_request_review_llm_summary.rb b/ee/spec/factories/merge_request_review_llm_summary.rb
deleted file mode 100644
index 217661e69acd200a354d58ff5ff093a06dd3a9a5..0000000000000000000000000000000000000000
--- a/ee/spec/factories/merge_request_review_llm_summary.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-# frozen_string_literal: true
-
-FactoryBot.define do
-  factory :merge_request_review_llm_summary, class: 'MergeRequest::ReviewLlmSummary' do
-    association :user, factory: :user
-    association :merge_request_diff, factory: :merge_request_diff
-    review { association :review, merge_request: merge_request_diff.merge_request }
-    provider { 0 }
-    content { FFaker::Lorem.sentence }
-  end
-end
diff --git a/ee/spec/models/ee/review_spec.rb b/ee/spec/models/ee/review_spec.rb
deleted file mode 100644
index fce8a253108ad433b1662f096def28d25fb89fed..0000000000000000000000000000000000000000
--- a/ee/spec/models/ee/review_spec.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe Review, feature_category: :code_review_workflow do
-  describe 'associations' do
-    it { is_expected.to have_one(:merge_request_review_llm_summary).class_name('MergeRequest::ReviewLlmSummary') }
-  end
-end
diff --git a/ee/spec/models/merge_request/review_llm_summary_spec.rb b/ee/spec/models/merge_request/review_llm_summary_spec.rb
deleted file mode 100644
index 282a95dd9579452938dad69df678f260cbcb3d40..0000000000000000000000000000000000000000
--- a/ee/spec/models/merge_request/review_llm_summary_spec.rb
+++ /dev/null
@@ -1,33 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe ::MergeRequest::ReviewLlmSummary, feature_category: :code_review_workflow do
-  subject(:merge_request_review_llm_summary) { build(:merge_request_review_llm_summary) }
-
-  describe 'associations' do
-    it { is_expected.to belong_to(:merge_request_diff) }
-    it { is_expected.to belong_to(:review) }
-    it { is_expected.to belong_to(:user).optional }
-    it { is_expected.to validate_presence_of(:content) }
-    it { is_expected.to validate_length_of(:content).is_at_most(2056) }
-    it { is_expected.to validate_presence_of(:provider) }
-  end
-
-  describe '.from_reviewer' do
-    let(:review_1) { create(:review) }
-    let(:review_2) { create(:review) }
-    let!(:review_llm_summary_1) { create(:merge_request_review_llm_summary, review: review_1) }
-    let!(:review_llm_summary_2) { create(:merge_request_review_llm_summary, review: review_2) }
-
-    it 'returns review LLM summaries that were generated for the reviews from the reviewer' do
-      expect(described_class.from_reviewer(review_1.author)).to eq([review_llm_summary_1])
-    end
-  end
-
-  describe '#reviewer' do
-    it 'returns author of associated review' do
-      expect(merge_request_review_llm_summary.reviewer).to eq(merge_request_review_llm_summary.review.author)
-    end
-  end
-end
diff --git a/spec/lib/gitlab/background_migration/backfill_merge_request_review_llm_summaries_project_id_spec.rb b/spec/lib/gitlab/background_migration/backfill_merge_request_review_llm_summaries_project_id_spec.rb
deleted file mode 100644
index 578f87bf59105723068e032d855fdf8f1410dc8e..0000000000000000000000000000000000000000
--- a/spec/lib/gitlab/background_migration/backfill_merge_request_review_llm_summaries_project_id_spec.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe Gitlab::BackgroundMigration::BackfillMergeRequestReviewLlmSummariesProjectId,
-  feature_category: :code_review_workflow,
-  schema: 20240613154055 do
-  include_examples 'desired sharding key backfill job' do
-    let(:batch_table) { :merge_request_review_llm_summaries }
-    let(:backfill_column) { :project_id }
-    let(:backfill_via_table) { :reviews }
-    let(:backfill_via_column) { :project_id }
-    let(:backfill_via_foreign_key) { :review_id }
-  end
-end
diff --git a/spec/lib/gitlab/import_export/all_models.yml b/spec/lib/gitlab/import_export/all_models.yml
index 8dbe68ff9a72fb87c92e1794ac880acd646b20e7..c90237e95931e6a5047ac978c54d89c61c41493e 100644
--- a/spec/lib/gitlab/import_export/all_models.yml
+++ b/spec/lib/gitlab/import_export/all_models.yml
@@ -276,7 +276,6 @@ merge_request_diff:
 - merge_request_diff_detail
 - merge_request_diff_files
 - merge_request_diff_llm_summary
-- merge_request_review_llm_summaries
 merge_request_diff_commits:
 - merge_request_diff
 - commit_author
diff --git a/spec/migrations/20240613154059_queue_backfill_merge_request_review_llm_summaries_project_id_spec.rb b/spec/migrations/20240613154059_queue_backfill_merge_request_review_llm_summaries_project_id_spec.rb
deleted file mode 100644
index 722a9194f136694dc6f488681f3178976ee4a4dc..0000000000000000000000000000000000000000
--- a/spec/migrations/20240613154059_queue_backfill_merge_request_review_llm_summaries_project_id_spec.rb
+++ /dev/null
@@ -1,33 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-require_migration!
-
-RSpec.describe QueueBackfillMergeRequestReviewLlmSummariesProjectId, feature_category: :code_review_workflow do
-  let!(:batched_migration) { described_class::MIGRATION }
-
-  it 'schedules a new batched migration' do
-    reversible_migration do |migration|
-      migration.before -> {
-        expect(batched_migration).not_to have_scheduled_batched_migration
-      }
-
-      migration.after -> {
-        expect(batched_migration).to have_scheduled_batched_migration(
-          table_name: :merge_request_review_llm_summaries,
-          column_name: :id,
-          interval: described_class::DELAY_INTERVAL,
-          batch_size: described_class::BATCH_SIZE,
-          sub_batch_size: described_class::SUB_BATCH_SIZE,
-          gitlab_schema: :gitlab_main_cell,
-          job_arguments: [
-            :project_id,
-            :reviews,
-            :project_id,
-            :review_id
-          ]
-        )
-      }
-    end
-  end
-end
diff --git a/spec/migrations/db/post_migrate/20240703134651_finalize_backfill_merge_request_review_llm_summaries_project_id_spec.rb b/spec/migrations/db/post_migrate/20240703134651_finalize_backfill_merge_request_review_llm_summaries_project_id_spec.rb
new file mode 100644
index 0000000000000000000000000000000000000000..c14166b7fed7c22e529d9deb7421d2ce70189050
--- /dev/null
+++ b/spec/migrations/db/post_migrate/20240703134651_finalize_backfill_merge_request_review_llm_summaries_project_id_spec.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+require_migration!
+
+RSpec.describe FinalizeBackfillMergeRequestReviewLlmSummariesProjectId, feature_category: :database do
+  describe '#up' do
+    it 'ensures the migration is completed for self-managed instances' do
+      # enqueue the migration
+      QueueBackfillMergeRequestReviewLlmSummariesProjectId.new.up
+
+      migration = Gitlab::Database::BackgroundMigration::BatchedMigration.where(
+        job_class_name: 'BackfillMergeRequestReviewLlmSummariesProjectId',
+        table_name: 'merge_request_review_llm_summaries'
+      ).first
+
+      expect(migration.status).not_to eq(6) # finalized
+
+      migrate!
+
+      expect(migration.reload.status).to eq(6)
+      QueueBackfillMergeRequestReviewLlmSummariesProjectId.new.down
+    end
+  end
+end