123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- from django.conf import settings
- from django.core.cache import caches
- from django.core.files.storage import default_storage
- from django.core.management import call_command
- from django.core.management.base import BaseCommand, CommandError
- from django.db import DEFAULT_DB_ALIAS
- from django_extensions.settings import POSTGRESQL_ENGINES
- from wagtail.documents import get_document_model
- from wagtail.images import get_image_model
- class Command(BaseCommand):
- def handle(self, **options):
- if settings.DATABASES[DEFAULT_DB_ALIAS]["ENGINE"] not in POSTGRESQL_ENGINES:
- raise CommandError(
- "This command can be used only with PostgreSQL databases."
- )
-
- if "s3" in default_storage.__class__.__name__.lower():
- self.stdout.write("Removing files from S3")
- default_storage.bucket.objects.all().delete()
- else:
- self.stdout.write("Removing images")
- get_image_model().objects.all().delete()
- self.stdout.write("Removing documents")
- get_document_model().objects.all().delete()
-
- self.stdout.write("Reset schema")
- call_command("reset_schema", interactive=False)
-
- call_command("migrate", interactive=False)
-
- for cache in caches.all():
- cache.clear()
-
- call_command("load_initial_data")
-
- call_command("reset_admin_password")
|