Fix Importer::BaseImporter#clean_up! not using proper primary key (#26269)
				
					
				
			This commit is contained in:
		| @@ -45,8 +45,11 @@ class Importer::BaseImporter | |||||||
|   # Remove documents from the index that no longer exist in the database |   # Remove documents from the index that no longer exist in the database | ||||||
|   def clean_up! |   def clean_up! | ||||||
|     index.scroll_batches do |documents| |     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') |       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] } |       tmp           = ids.reject { |id| existence_map[id] } | ||||||
|  |  | ||||||
|       next if tmp.empty? |       next if tmp.empty? | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user