feat: 执行数据库备份时排除指定超表
This commit is contained in:
parent
e4ce5271eb
commit
95d6dfbf6a
|
|
@ -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 -u postgres 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:
|
||||
|
|
|
|||
Loading…
Reference in New Issue