summaryrefslogtreecommitdiff
path: root/ishtar_common/management/commands/update_search_vectors.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-10-12 17:28:09 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-10-12 17:28:09 +0200
commitfcd453c30b0fdcbd6877724d25101d0d1d5f94b8 (patch)
treed9eab5fe8c4eb9aa8b6dde3f74b12281e38cd842 /ishtar_common/management/commands/update_search_vectors.py
parentd644ad71585c5ebf2113f2c538c38c775b334228 (diff)
downloadIshtar-fcd453c30b0fdcbd6877724d25101d0d1d5f94b8.tar.bz2
Ishtar-fcd453c30b0fdcbd6877724d25101d0d1d5f94b8.zip
Searches: update_search_vectors command
Diffstat (limited to 'ishtar_common/management/commands/update_search_vectors.py')
-rw-r--r--ishtar_common/management/commands/update_search_vectors.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/ishtar_common/management/commands/update_search_vectors.py b/ishtar_common/management/commands/update_search_vectors.py
new file mode 100644
index 000000000..c73a6e88e
--- /dev/null
+++ b/ishtar_common/management/commands/update_search_vectors.py
@@ -0,0 +1,24 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+import sys
+
+from django.core.management.base import BaseCommand
+import django.apps
+
+
+class Command(BaseCommand):
+ help = "./manage.py update_search_vectors\n\n"\
+ "Update full texte search vectors."
+
+ def handle(self, *args, **options):
+ for model in django.apps.apps.get_models():
+ if hasattr(model, "update_search_vector") and \
+ getattr(model, "BASE_SEARCH_VECTORS", None):
+ self.stdout.write("\n* update {}".format(model))
+ total = model.objects.count()
+ for idx, item in enumerate(model.objects.all()):
+ sys.stdout.write("\r{}/{} ".format(idx, total))
+ sys.stdout.flush()
+ item.update_search_vector()
+ self.stdout.write("\n")