This commit is contained in:
TianyangZhang 2025-10-24 13:45:49 +08:00
commit 5e58eb4baf
1 changed files with 5 additions and 2 deletions

View File

@ -2,6 +2,7 @@ from __future__ import absolute_import, unicode_literals
from celery import shared_task
import subprocess
from server.settings import DATABASES, BACKUP_PATH, SH_PATH, SD_PWD
from django.conf import settings
import logging
myLogger = logging.getLogger('log')
@ -14,8 +15,10 @@ def backup_database():
import datetime
name = datetime.datetime.now().strftime("%Y%m%d%H%M%S")
command = 'echo "{}" | sudo -S pg_dump "user={} password={} dbname={}" > {}/bak_{}.sql'.format(
SD_PWD, DATABASES["default"]["USER"], DATABASES["default"]["PASSWORD"], DATABASES["default"]["NAME"], BACKUP_PATH + "/database", name
exclude_tables = getattr(settings, 'EXCLUDE_TABLE_DATA', [])
exclude_str = ' '.join([f"--exclude-table-data={table}" for table in exclude_tables])
command = 'echo "{}" | sudo -S -u postgres pg_dump {} "user={} password={} dbname={}" > {}/bak_{}.sql'.format(
SD_PWD, exclude_str, DATABASES["default"]["USER"], DATABASES["default"]["PASSWORD"], DATABASES["default"]["NAME"], BACKUP_PATH + "/database", name
)
completed = subprocess.run(command, shell=True, capture_output=True, text=True)
if completed.returncode != 0: