From 3c68e88b0619b2294923236738139456a79d1a25 Mon Sep 17 00:00:00 2001 From: Jonathan Weth <git@jonathanweth.de> Date: Sun, 30 Aug 2020 15:51:01 +0200 Subject: [PATCH] Add cleanup option for db and media backup --- aleksis/core/settings.py | 2 ++ aleksis/core/tasks.py | 21 +++++++++++++++------ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/aleksis/core/settings.py b/aleksis/core/settings.py index ec1dc61ed..dbf35a7bd 100644 --- a/aleksis/core/settings.py +++ b/aleksis/core/settings.py @@ -413,6 +413,8 @@ DBBACKUP_COMPRESS_DB = _settings.get("backup.database.compress", True) DBBACKUP_ENCRYPT_DB = _settings.get("backup.database.encrypt", DBBACKUP_GPG_RECIPIENT is not None) DBBACKUP_COMPRESS_MEDIA = _settings.get("backup.media.compress", True) DBBACKUP_ENCRYPT_MEDIA = _settings.get("backup.media.encrypt", DBBACKUP_GPG_RECIPIENT is not None) +DBBACKUP_CLEANUP_DB = _settings.get("backup.database.clean", True) +DBBACKUP_CLEANUP_MEDIA = _settings.get("backup.media.clean", True) IMPERSONATE = {"USE_HTTP_REFERER": True, "REQUIRE_SUPERUSER": True, "ALLOW_SUPERUSER": True} diff --git a/aleksis/core/tasks.py b/aleksis/core/tasks.py index 863bf7e42..d085f027f 100644 --- a/aleksis/core/tasks.py +++ b/aleksis/core/tasks.py @@ -19,12 +19,21 @@ def send_notification(notification: int, resend: bool = False) -> None: def backup_data() -> None: """Backup database and media using django-dbbackup.""" # Assemble command-line options for dbbackup management command - db_options = (["-z"] if settings.DBBACKUP_COMPRESS_DB else []) + ( - ["-e"] if settings.DBBACKUP_ENCRYPT_DB else [] - ) - media_options = (["-z"] if settings.DBBACKUP_COMPRESS_MEDIA else []) + ( - ["-e"] if settings.DBBACKUP_ENCRYPT_MEDIA else [] - ) + db_options = [] + if settings.DBBACKUP_COMPRESS_DB: + db_options.append("-z") + if settings.DBBACKUP_ENCRYPT_DB: + db_options.append("-e") + if settings.DBBACKUP_CLEANUP_DB: + db_options.append("-c") + + media_options = [] + if settings.DBBACKUP_COMPRESS_MEDIA: + media_options.append("-z") + if settings.DBBACKUP_ENCRYPT_MEDIA: + media_options.append("-e") + if settings.DBBACKUP_CLEANUP_MEDIA: + media_options.append("-c") # Hand off to dbbackup's management commands management.call_command("dbbackup", *db_options) -- GitLab