feat: ship blog platform admin and deploy stack
This commit is contained in:
19
deploy/scripts/backup/backup-postgres.sh
Normal file
19
deploy/scripts/backup/backup-postgres.sh
Normal file
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
BACKUP_DIR="${BACKUP_DIR:-./backups/postgres}"
|
||||
RETENTION_DAYS="${RETENTION_DAYS:-14}"
|
||||
TIMESTAMP="$(date -u +%Y%m%dT%H%M%SZ)"
|
||||
FILE_PATH="${BACKUP_DIR}/postgres-${TIMESTAMP}.dump"
|
||||
|
||||
if [[ -z "${DATABASE_URL:-}" ]]; then
|
||||
echo "DATABASE_URL is required" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "${BACKUP_DIR}"
|
||||
pg_dump --format=custom --file="${FILE_PATH}" "${DATABASE_URL}"
|
||||
ln -sfn "$(basename "${FILE_PATH}")" "${BACKUP_DIR}/latest.dump"
|
||||
find "${BACKUP_DIR}" -type f -name 'postgres-*.dump' -mtime +"${RETENTION_DAYS}" -delete
|
||||
|
||||
echo "Postgres backup written to ${FILE_PATH}"
|
||||
Reference in New Issue
Block a user