diff options
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 |
commit | 42c688f5c7817d1e69c6ee4c1cb59d90ffbb7885 (patch) | |
tree | 675cf3303d16aad6fcb8556c113516184d4f8e42 /chimere/management/commands/chimere_update_search_engine.py | |
parent | 9767c4cc9473dbc6eff402874363015fd70689b9 (diff) | |
download | Chimè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.py | 22 |
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)) + + |