kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
36 wiersze
1.1 KiB
Python
36 wiersze
1.1 KiB
Python
from django.core.management.base import BaseCommand
|
|
|
|
from django.db import transaction
|
|
|
|
from funkwhale_api.music import models
|
|
|
|
|
|
class Command(BaseCommand):
|
|
help = """
|
|
This command makes it easy to prune all skipped Uploads from the database.
|
|
Due to a bug they might caused the database to grow exponentially,
|
|
especially when using in-place-imports on a regular basis. This command
|
|
helps to clean up the database again.
|
|
"""
|
|
|
|
def add_arguments(self, parser):
|
|
parser.add_argument(
|
|
"--force",
|
|
default=False,
|
|
help="Disable dry run mode and apply pruning for real on the database",
|
|
)
|
|
|
|
@transaction.atomic
|
|
def handle(self, *args, **options):
|
|
skipped = models.Uploads.objects.filter(import_status="skipped")
|
|
count = len(skipped)
|
|
if options["force"]:
|
|
skipped.delete()
|
|
print(f"Deleted {count} entries from the database.")
|
|
return
|
|
|
|
print(
|
|
f"Would delete {count} entries from the database.\
|
|
Run with --force to actually apply changes to the database"
|
|
)
|