Browse Source

Fixes #4888 - Warning messages: `Scoped order is ignored, it's forced to be batch order.` if `run rake zammad:searchindex:rebuild` is used

Co-authored-by: Florian Liebe <fl@zammad.com>
Rolf Schmidt 1 year ago
parent
commit
4e7948d655
1 changed files with 6 additions and 1 deletions
  1. 6 1
      app/models/concerns/has_search_index_backend.rb

+ 6 - 1
app/models/concerns/has_search_index_backend.rb

@@ -182,9 +182,12 @@ reload search index with full data
       query           = reorder(created_at: :desc)
       total           = query.count
       record_count    = 0
+      offset          = 0
       batch_size      = 200
 
-      query.in_batches(of: batch_size) do |records|
+      while query.offset(offset).limit(batch_size).count.positive?
+        records = query.offset(offset).limit(batch_size)
+
         Parallel.map(records, { in_processes: worker }) do |record|
           next if record.ignore_search_indexing?(:destroy)
 
@@ -198,6 +201,8 @@ reload search index with full data
           end
         end
 
+        offset += batch_size
+
         next if silent
 
         record_count += records.count