generated from john/python-template
This commit is contained in:
@@ -5,27 +5,35 @@ BACKUP_DIR="${BACKUP_DIR:-./data/backups}"
|
||||
RETENTION_DAYS="${BACKUP_RETENTION_DAYS:-14}"
|
||||
UPLOAD_DIR="${UPLOAD_DIR:-/app/uploads}"
|
||||
PROMPT_DIR="${PROMPT_DIR:-/app/prompts}"
|
||||
DATABASE_DRIVER="${DATABASE__DRIVER:-postgres}"
|
||||
DATABASE_HOST="${DATABASE__HOST:-postgres}"
|
||||
DATABASE_PORT="${DATABASE__PORT:-5432}"
|
||||
DATABASE_NAME="${DATABASE__DATABASE:-}"
|
||||
DATABASE_USER="${DATABASE__USER:-}"
|
||||
DATABASE_PASSWORD="${DATABASE__PASSWORD:-}"
|
||||
|
||||
timestamp="$(date -u +%Y%m%d-%H%M%S)"
|
||||
postgres_file="postgres-${timestamp}.dump"
|
||||
manifest_file="backup-${timestamp}.manifest"
|
||||
|
||||
mkdir -p "${BACKUP_DIR}"
|
||||
: "${POSTGRES_HOST:=postgres}"
|
||||
: "${POSTGRES_PORT:=5432}"
|
||||
if [ -z "${POSTGRES_DB:-}" ] || [ -z "${POSTGRES_USER:-}" ] || [ -z "${POSTGRES_PASSWORD:-}" ]; then
|
||||
echo "POSTGRES_DB, POSTGRES_USER, and POSTGRES_PASSWORD must be set." >&2
|
||||
if [ "${DATABASE_DRIVER}" != "postgres" ]; then
|
||||
echo "create_postgres_backup.sh requires DATABASE__DRIVER=postgres." >&2
|
||||
exit 1
|
||||
fi
|
||||
if [ -z "${DATABASE_NAME}" ] || [ -z "${DATABASE_USER}" ] || [ -z "${DATABASE_PASSWORD}" ]; then
|
||||
echo "DATABASE__DATABASE, DATABASE__USER, and DATABASE__PASSWORD must be set." >&2
|
||||
exit 1
|
||||
fi
|
||||
if ! command -v pg_dump >/dev/null 2>&1; then
|
||||
echo "pg_dump is not installed in this environment." >&2
|
||||
exit 1
|
||||
fi
|
||||
PGPASSWORD="${POSTGRES_PASSWORD}" pg_dump \
|
||||
-h "${POSTGRES_HOST}" \
|
||||
-p "${POSTGRES_PORT}" \
|
||||
-U "${POSTGRES_USER}" \
|
||||
-d "${POSTGRES_DB}" \
|
||||
PGPASSWORD="${DATABASE_PASSWORD}" pg_dump \
|
||||
-h "${DATABASE_HOST}" \
|
||||
-p "${DATABASE_PORT}" \
|
||||
-U "${DATABASE_USER}" \
|
||||
-d "${DATABASE_NAME}" \
|
||||
-Fc \
|
||||
> "${BACKUP_DIR}/${postgres_file}"
|
||||
|
||||
@@ -43,15 +51,9 @@ find "${BACKUP_DIR}" -type f \( \
|
||||
\) -mtime +"${RETENTION_DAYS}" -delete
|
||||
|
||||
uploads_backup_dir="${BACKUP_DIR}/uploads"
|
||||
mkdir -p "${uploads_backup_dir}/documents" "${uploads_backup_dir}/photos"
|
||||
if [ -f "${UPLOAD_DIR}/homepage.md" ] && [ ! -f "${uploads_backup_dir}/homepage.md" ]; then
|
||||
cp "${UPLOAD_DIR}/homepage.md" "${uploads_backup_dir}/homepage.md"
|
||||
fi
|
||||
if [ -d "${UPLOAD_DIR}/documents" ]; then
|
||||
cp -an "${UPLOAD_DIR}/documents/." "${uploads_backup_dir}/documents/"
|
||||
fi
|
||||
if [ -d "${UPLOAD_DIR}/photos" ]; then
|
||||
cp -an "${UPLOAD_DIR}/photos/." "${uploads_backup_dir}/photos/"
|
||||
mkdir -p "${uploads_backup_dir}"
|
||||
if [ -d "${UPLOAD_DIR}" ]; then
|
||||
cp -an "${UPLOAD_DIR}/." "${uploads_backup_dir}/"
|
||||
fi
|
||||
|
||||
prompts_backup_dir="${BACKUP_DIR}/prompts"
|
||||
|
||||
Reference in New Issue
Block a user