export-all-verif
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
'''
|
||||
Created on 18 mai 2026
|
||||
|
||||
@author: denis
|
||||
'''
|
||||
from pathlib import Path
|
||||
from datetime import datetime
|
||||
import subprocess
|
||||
import gzip
|
||||
import shutil
|
||||
|
||||
from django.conf import settings
|
||||
|
||||
BACKUP_DIR = Path(settings.BACKUP_DIR)
|
||||
|
||||
|
||||
def mariadb_backup():
|
||||
BACKUP_DIR.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
db = settings.DATABASES["default"]
|
||||
|
||||
db_name = db["NAME"]
|
||||
db_user = db["USER"]
|
||||
db_password = db["PASSWORD"]
|
||||
db_host = db.get("HOST", "localhost")
|
||||
db_port = str(db.get("PORT", 3306))
|
||||
|
||||
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
||||
|
||||
sql_file = BACKUP_DIR / f"{db_name}_{timestamp}.sql"
|
||||
gz_file = BACKUP_DIR / f"{db_name}_{timestamp}.sql.gz"
|
||||
|
||||
cmd = [
|
||||
"mariadb-dump",
|
||||
"--single-transaction",
|
||||
"--quick",
|
||||
"--routines",
|
||||
"--triggers",
|
||||
"-h", db_host,
|
||||
"-P", db_port,
|
||||
"-u", db_user,
|
||||
f"-p{db_password}",
|
||||
db_name,
|
||||
]
|
||||
|
||||
with open(sql_file, "wb") as f:
|
||||
result = subprocess.run(
|
||||
cmd,
|
||||
stdout=f,
|
||||
stderr=subprocess.PIPE,
|
||||
check=True,
|
||||
)
|
||||
|
||||
with open(sql_file, "rb") as f_in:
|
||||
with gzip.open(gz_file, "wb") as f_out:
|
||||
shutil.copyfileobj(f_in, f_out)
|
||||
|
||||
sql_file.unlink()
|
||||
|
||||
return str(gz_file)
|
||||
|
||||
Reference in New Issue
Block a user