Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 1m19s
Build & Deploy / 🧪 QA (push) Failing after 3m32s
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🏗️ Build (push) Failing after 7m51s
Build & Deploy / ⚡ Lighthouse (push) Has been skipped
Build & Deploy / 🧪 Smoke Test (push) Has been skipped
Build & Deploy / ♿ WCAG (push) Has been skipped
Build & Deploy / 🛡️ Quality Gates (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 10s
48 lines
1.7 KiB
Bash
Executable File
48 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# ────────────────────────────────────────────────────────────────────────────
|
|
# Payload CMS Database Backup
|
|
# Creates a timestamped pg_dump of the Payload Postgres database.
|
|
# Usage: npm run backup:db
|
|
# ────────────────────────────────────────────────────────────────────────────
|
|
set -euo pipefail
|
|
|
|
# Load environment variables
|
|
if [ -f .env ]; then
|
|
set -a; source .env; set +a
|
|
fi
|
|
|
|
DB_NAME="${PAYLOAD_DB_NAME:-payload}"
|
|
DB_USER="${PAYLOAD_DB_USER:-payload}"
|
|
DB_CONTAINER="klz-2026-klz-db-1"
|
|
BACKUP_DIR="./backups"
|
|
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
|
|
BACKUP_FILE="${BACKUP_DIR}/payload_${TIMESTAMP}.sql.gz"
|
|
|
|
# Ensure backup directory exists
|
|
mkdir -p "$BACKUP_DIR"
|
|
|
|
# Check if container is running
|
|
if ! docker ps --format '{{.Names}}' | grep -q "$DB_CONTAINER"; then
|
|
echo "❌ Database container '$DB_CONTAINER' is not running."
|
|
echo " Start it with: docker compose up -d klz-db"
|
|
exit 1
|
|
fi
|
|
|
|
echo "📦 Backing up Payload database..."
|
|
echo " Container: $DB_CONTAINER"
|
|
echo " Database: $DB_NAME"
|
|
echo " Output: $BACKUP_FILE"
|
|
|
|
# Run pg_dump inside the container and compress
|
|
docker exec "$DB_CONTAINER" pg_dump -U "$DB_USER" -d "$DB_NAME" --clean --if-exists | gzip > "$BACKUP_FILE"
|
|
|
|
# Show result
|
|
SIZE=$(du -h "$BACKUP_FILE" | cut -f1)
|
|
echo ""
|
|
echo "✅ Backup complete: $BACKUP_FILE ($SIZE)"
|
|
echo ""
|
|
|
|
# Show existing backups
|
|
echo "📋 Available backups:"
|
|
ls -lh "$BACKUP_DIR"/*.sql.gz 2>/dev/null | awk '{print " " $NF " (" $5 ")"}'
|