Fixes: 1) Correct formatting issue in `0036_vendor_b2b_auth_token_vendor_users` migration file; Extra: 1) Update environment file generation scripts to accommodate new DBBACKUP_TYPE configuration; 2) Add import for `ImproperlyConfigured` in `dbbackup.py`.
40 lines
1.5 KiB
Python
40 lines
1.5 KiB
Python
from os import getenv
|
|
|
|
from django.core.exceptions import ImproperlyConfigured
|
|
|
|
DBBACKUP_CONNECTORS = {
|
|
"default": {
|
|
"SINGLE_TRANSACTION": False,
|
|
"IF_EXISTS": True,
|
|
"RESTORE_SUFFIX": "--set ON_ERROR_STOP=off",
|
|
}
|
|
}
|
|
|
|
if getenv("DBBACKUP_HOST") and getenv("DBBACKUP_USER") and getenv("DBBACKUP_PASS"):
|
|
dbbackup_server_type = getenv("DBBACKUP_TYPE", "sftp")
|
|
match dbbackup_server_type:
|
|
case "sftp":
|
|
DBBACKUP_STORAGE = "storages.backends.sftpstorage.SFTPStorage"
|
|
DBBACKUP_STORAGE_OPTIONS = {
|
|
"host": getenv("DBBACKUP_HOST"),
|
|
"root_path": "/db_backups/",
|
|
"params": {
|
|
"username": getenv("DBBACKUP_USER"),
|
|
"password": getenv("DBBACKUP_PASS"),
|
|
"allow_agent": False,
|
|
"look_for_keys": False,
|
|
},
|
|
"interactive": False,
|
|
"file_mode": 0o600,
|
|
"dir_mode": 0o700,
|
|
}
|
|
case "ftp":
|
|
DBBACKUP_STORAGE = "storages.backends.ftp.FTPStorage"
|
|
DBBACKUP_STORAGE_OPTIONS = {
|
|
"location": f"ftp://{getenv('DBBACKUP_USER')}:{getenv('DBBACKUP_PASS')}@{getenv('DBBACKUP_HOST')}:21",
|
|
}
|
|
case _:
|
|
raise ImproperlyConfigured(f"Invalid DBBACKUP_TYPE: {dbbackup_server_type}")
|
|
else:
|
|
DBBACKUP_STORAGE = "django.core.files.storage.FileSystemStorage"
|
|
DBBACKUP_STORAGE_OPTIONS = {"location": "/app/db_backups/"}
|