~cytrogen/masto-fe

d82abc877a65234f453112f7530315ce03cee740 — Claire 2 years ago d4807a5
Fix `Importer::BaseImporter#clean_up!` not using proper primary key (#26269)

1 files changed, 4 insertions(+), 1 deletions(-)

M app/lib/importer/base_importer.rb
M app/lib/importer/base_importer.rb => app/lib/importer/base_importer.rb +4 -1
@@ 45,8 45,11 @@ class Importer::BaseImporter
  # Remove documents from the index that no longer exist in the database
  def clean_up!
    index.scroll_batches do |documents|
      primary_key = index.adapter.target.primary_key
      raise ActiveRecord::UnknownPrimaryKey, index.adapter.target if primary_key.nil?

      ids           = documents.pluck('_id')
      existence_map = index.adapter.target.where(id: ids).pluck(:id).each_with_object({}) { |id, map| map[id.to_s] = true }
      existence_map = index.adapter.target.where(primary_key => ids).pluck(primary_key).each_with_object({}) { |id, map| map[id.to_s] = true }
      tmp           = ids.reject { |id| existence_map[id] }

      next if tmp.empty?