from django.core.management import BaseCommand from django.db import transaction from documents.tasks import index_reindex, index_optimize class Command(BaseCommand): help = "Manages the document index." def add_arguments(self, parser): parser.add_argument("command", choices=["reindex", "optimize"]) parser.add_argument( "--no-progress-bar", default=False, action="store_true", help="If set, the progress bar will not be shown", ) def handle(self, *args, **options): with transaction.atomic(): if options["command"] == "reindex": index_reindex(progress_bar_disable=options["no_progress_bar"]) elif options["command"] == "optimize": index_optimize()