#!/bin/bash # Force upgrade production database - WARNING: This will DELETE all data! # Use this script when data is not critical and you need a clean migration set -e # Exit on error PRODUCTION_DB_PATH="/opt/littleshop/littleshop-production.db" BACKUP_PATH="/opt/littleshop/backups/littleshop-production-backup-$(date +%Y%m%d_%H%M%S).db" echo "🔧 Force Upgrade Production Database" echo "=====================================" echo "" echo "⚠️ WARNING: This will DELETE all existing data!" echo "📍 Database: $PRODUCTION_DB_PATH" echo "" # Create backups directory if it doesn't exist mkdir -p /opt/littleshop/backups # Backup existing database if it exists if [ -f "$PRODUCTION_DB_PATH" ]; then echo "📦 Backing up existing database..." cp "$PRODUCTION_DB_PATH" "$BACKUP_PATH" echo "✅ Backup saved to: $BACKUP_PATH" echo "" fi # Remove old database files echo "🗑️ Removing old database files..." rm -f "$PRODUCTION_DB_PATH" rm -f "${PRODUCTION_DB_PATH}-shm" rm -f "${PRODUCTION_DB_PATH}-wal" echo "✅ Old database files removed" echo "" # Apply all migrations to create fresh database echo "🔄 Applying all migrations..." cd /opt/littleshop dotnet ef database update --project LittleShop.csproj if [ $? -eq 0 ]; then echo "" echo "✅ Database successfully upgraded!" echo "📋 All migrations applied successfully" echo "" echo "📊 Database info:" echo " Path: $PRODUCTION_DB_PATH" echo " Backup: $BACKUP_PATH" echo "" echo "🎉 Production database is now ready!" else echo "" echo "❌ Migration failed!" echo "🔄 Restoring from backup..." cp "$BACKUP_PATH" "$PRODUCTION_DB_PATH" echo "✅ Backup restored" exit 1 fi