#!/bin/bash # AKNAPROFF Tootmine Database Backup Script # Создаёт бэкапы БД с timestamp set -e # Exit on error # Цвета для вывода RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # Настройки DATE=$(date +%Y%m%d_%H%M%S) BACKUP_DIR="./backups" DEV_DB_PATH=".wrangler/state/v3/d1/webapp-production.sqlite" PROD_DB_PATH="data/db/webapp-production.sqlite" # Создать папку для бэкапов mkdir -p "$BACKUP_DIR" echo "🗄️ AKNAPROFF Database Backup" echo "==============================" echo "" # Проверить и бэкапить Development БД if [ -f "$DEV_DB_PATH" ]; then DEV_BACKUP="$BACKUP_DIR/webapp-dev-$DATE.sqlite" cp "$DEV_DB_PATH" "$DEV_BACKUP" # Размер файла SIZE=$(du -h "$DEV_BACKUP" | cut -f1) echo -e "${GREEN}✅ Development DB backed up${NC}" echo " File: $DEV_BACKUP" echo " Size: $SIZE" echo "" else echo -e "${YELLOW}⚠️ Development DB not found${NC}" echo " Path: $DEV_DB_PATH" echo "" fi # Проверить и бэкапить Production БД if [ -f "$PROD_DB_PATH" ]; then PROD_BACKUP="$BACKUP_DIR/webapp-prod-$DATE.sqlite" cp "$PROD_DB_PATH" "$PROD_BACKUP" # Размер файла SIZE=$(du -h "$PROD_BACKUP" | cut -f1) echo -e "${GREEN}✅ Production DB backed up${NC}" echo " File: $PROD_BACKUP" echo " Size: $SIZE" echo "" else echo -e "${YELLOW}⚠️ Production DB not found${NC}" echo " Path: $PROD_DB_PATH" echo "" fi # Показать все бэкапы echo "📦 All backups:" echo "---------------" ls -lh "$BACKUP_DIR"/*.sqlite 2>/dev/null | awk '{print " " $9 " (" $5 ")"}' echo "" echo "==============================" # Подсчитать количество бэкапов BACKUP_COUNT=$(ls -1 "$BACKUP_DIR"/*.sqlite 2>/dev/null | wc -l) if [ "$BACKUP_COUNT" -gt 10 ]; then echo -e "${YELLOW}💡 Tip: You have $BACKUP_COUNT backups${NC}" echo " Consider cleaning old backups:" echo " rm $BACKUP_DIR/webapp-*-2024*.sqlite" echo "" fi echo -e "${GREEN}✅ Backup completed!${NC}"