diff --git a/scripts/deploy.sh b/scripts/deploy.sh index f3b6287..6298a52 100755 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -3,6 +3,49 @@ set -e 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 echo "๐Ÿ“ฅ Pulling latest changes from git..." git pull