summaryrefslogtreecommitdiff
path: root/chimere/management/commands/chimere_update_search_engine.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-09-29 13:17:25 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-09-29 13:17:25 +0200
commit42c688f5c7817d1e69c6ee4c1cb59d90ffbb7885 (patch)
tree675cf3303d16aad6fcb8556c113516184d4f8e42 /chimere/management/commands/chimere_update_search_engine.py
parent9767c4cc9473dbc6eff402874363015fd70689b9 (diff)
downloadChimère-42c688f5c7817d1e69c6ee4c1cb59d90ffbb7885.tar.bz2
Chimère-42c688f5c7817d1e69c6ee4c1cb59d90ffbb7885.zip
Command to force update of search vectors
Diffstat (limited to 'chimere/management/commands/chimere_update_search_engine.py')
-rw-r--r--chimere/management/commands/chimere_update_search_engine.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/chimere/management/commands/chimere_update_search_engine.py b/chimere/management/commands/chimere_update_search_engine.py
new file mode 100644
index 0000000..8ab5aeb
--- /dev/null
+++ b/chimere/management/commands/chimere_update_search_engine.py
@@ -0,0 +1,22 @@
+import sys
+
+from django.core.management.base import BaseCommand
+from chimere import models
+
+
+class Command(BaseCommand):
+ help = "Update internal search engine"
+
+ def handle(self, *args, **options):
+ for model in [models.Marker, models.Route, models.Polygon]:
+ sys.stdout.write("* {}\n".format(model))
+ changed = 0
+ q = model.objects
+ total = q.count()
+ for idx, item in enumerate(q.all()):
+ sys.stdout.write("{}/{}\r".format(idx + 1, total))
+ sys.stdout.flush()
+ changed += 1 if item.update_search_vector() else 0
+ print("{} item(s) updated".format(changed))
+
+