From c8f459db427826c097d2c3a1759ff4f537e56e54 Mon Sep 17 00:00:00 2001
From: Erwan Rouchet <rouchet@teklia.com>
Date: Thu, 24 Nov 2022 10:41:11 +0000
Subject: [PATCH] Drop Solr collections before re-creating them in manage.py
 reindex

---
 arkindex/documents/indexer.py                     | 7 +++++--
 arkindex/documents/management/commands/reindex.py | 6 +++---
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/arkindex/documents/indexer.py b/arkindex/documents/indexer.py
index b838eecf5a..b48ec44296 100644
--- a/arkindex/documents/indexer.py
+++ b/arkindex/documents/indexer.py
@@ -186,8 +186,11 @@ class Indexer(object):
         """
         Drop an existing collection
         """
-        solr.delete_doc_by_query(self.collection_name, '*:*', **self.solr_options)
-        logger.info(f'Dropped index for {self.collection_name}')
+        if solr.collections.exists(self.collection_name):
+            solr.delete_doc_by_query(self.collection_name, '*:*', **self.solr_options)
+            logger.info(f'Dropped index for {self.collection_name}')
+        else:
+            logger.info(f'Skipping drop for {self.collection_name}: collection does not exist')
 
     def get_elements(self):
         # First make the query that returns all indexable elements.
diff --git a/arkindex/documents/management/commands/reindex.py b/arkindex/documents/management/commands/reindex.py
index aafa67ce3b..e0e6c95fe8 100644
--- a/arkindex/documents/management/commands/reindex.py
+++ b/arkindex/documents/management/commands/reindex.py
@@ -48,9 +48,9 @@ class Command(BaseCommand):
         for corpus in corpora:
             self.stdout.write(f"Indexing {corpus.name}")
             indexer = Indexer(corpus.id)
-            indexer.setup()
-            if options.get('setup'):
-                return
             if options.get('drop'):
                 indexer.drop_index()
+            indexer.setup()
+            if options.get('setup'):
+                continue
             indexer.index()
-- 
GitLab