From c3f00935ff217a61e6e67d8dd522d34016dc5912 Mon Sep 17 00:00:00 2001 From: Dustin Broderick Date: Wed, 6 Dec 2017 10:37:06 -0700 Subject: [PATCH] Adds logic for non-atomic indexing --- watson/management/commands/buildwatson.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/watson/management/commands/buildwatson.py b/watson/management/commands/buildwatson.py index f367473..79e1599 100644 --- a/watson/management/commands/buildwatson.py +++ b/watson/management/commands/buildwatson.py @@ -28,7 +28,7 @@ def get_engine(engine_slug_): raise CommandError("Search Engine \"%s\" is not registered!" % force_text(engine_slug_)) -def rebuild_index_for_model(model_, engine_slug_, verbosity_, slim_=False, batch_size_=100): +def rebuild_index_for_model(model_, engine_slug_, verbosity_, slim_=False, batch_size_=100, non_atomic_=False): """rebuilds index for a model""" search_engine_ = get_engine(engine_slug_) @@ -64,7 +64,11 @@ def rebuild_index_for_model(model_, engine_slug_, verbosity_, slim_=False, batch engine_slug=force_text(engine_slug_), ) ) - _bulk_save_search_entries(iter_search_entries(), batch_size=batch_size_) + if non_atomic_: + _bulk_save_search_entries(iter_search_entries(), batch_size=batch_size_) + else: + with transaction.atomic(): + _bulk_save_search_entries(iter_search_entries(), batch_size=batch_size_) return local_refreshed_model_count[0]