feat: Add database backup with rotation to deploy script.

This commit is contained in:
Hördle Bot
2025-11-23 10:52:05 +01:00
parent f13a719d0e
commit 57affff7d1

View File

@@ -3,6 +3,49 @@ set -e
echo "🚀 Starting optimized deployment..." echo "🚀 Starting optimized deployment..."
# Backup database
echo "💾 Creating database backup..."
# Try to find database path from docker-compose.yml or .env
DB_PATH=""
# Check if docker-compose.yml exists and extract DATABASE_URL
if [ -f "docker-compose.yml" ]; then
DB_PATH=$(grep -oP 'DATABASE_URL=file:\K[^\s]+' docker-compose.yml | head -1)
fi
# Fallback to .env if not found
if [ -z "$DB_PATH" ] && [ -f ".env" ]; then
DB_PATH=$(grep -oP '^DATABASE_URL=file:\K.+' .env | head -1)
fi
# Remove any quotes and resolve path
DB_PATH=$(echo "$DB_PATH" | tr -d '"' | tr -d "'")
if [ -n "$DB_PATH" ]; then
# Convert container path to host path if needed
# /app/data/prod.db -> ./data/prod.db
DB_PATH=$(echo "$DB_PATH" | sed 's|/app/|./|')
if [ -f "$DB_PATH" ]; then
# Create backups directory
mkdir -p ./backups
# Create timestamped backup
BACKUP_FILE="./backups/$(basename "$DB_PATH" .db)_$(date +%Y%m%d_%H%M%S).db"
cp "$DB_PATH" "$BACKUP_FILE"
echo "✅ Database backed up to: $BACKUP_FILE"
# Keep only last 10 backups
ls -t ./backups/*.db | tail -n +11 | xargs -r rm
echo "🧹 Cleaned old backups (keeping last 10)"
else
echo "⚠️ Database file not found at: $DB_PATH"
fi
else
echo "⚠️ Could not determine database path from config files"
fi
# Pull latest changes # Pull latest changes
echo "📥 Pulling latest changes from git..." echo "📥 Pulling latest changes from git..."
git pull git pull