#!/bin/bash # Rollback production data import # This restores the data from backup tables created before import echo "==========================================" echo "Rolling back production data import..." echo "==========================================" echo "" MYSQL_CMD="docker exec -i dev-mysql mysql -u root -prootpassword shopdb" echo "Step 1: Checking if backup tables exist..." $MYSQL_CMD <<'EOF' SELECT (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'shopdb' AND table_name = 'notifications_backup_20251113') AS has_notifications_backup, (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'shopdb' AND table_name = 'notificationtypes_backup_20251113') AS has_notificationtypes_backup, (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'shopdb' AND table_name = 'printers_backup_20251113') AS has_printers_backup, (SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'shopdb' AND table_name = 'knowledgebase_backup_20251113') AS has_knowledgebase_backup; EOF echo "" read -p "Are you sure you want to rollback? This will restore data from backups. (yes/no): " confirm if [ "$confirm" != "yes" ]; then echo "Rollback cancelled." exit 0 fi echo "" echo "Step 2: Restoring data from backups..." $MYSQL_CMD <<'EOF' SET FOREIGN_KEY_CHECKS = 0; -- Restore notifications DELETE FROM notifications; INSERT INTO notifications SELECT * FROM notifications_backup_20251113; -- Restore notificationtypes DELETE FROM notificationtypes; INSERT INTO notificationtypes SELECT * FROM notificationtypes_backup_20251113; -- Restore printers DELETE FROM printers; INSERT INTO printers SELECT * FROM printers_backup_20251113; -- Restore knowledgebase DELETE FROM knowledgebase; INSERT INTO knowledgebase SELECT * FROM knowledgebase_backup_20251113; SET FOREIGN_KEY_CHECKS = 1; SELECT 'Data restored from backups' AS status; EOF echo "" echo "Step 3: Verifying restored counts..." $MYSQL_CMD <<'EOF' SELECT (SELECT COUNT(*) FROM notifications) AS notifications_count, (SELECT COUNT(*) FROM notificationtypes) AS notificationtypes_count, (SELECT COUNT(*) FROM printers) AS printers_count, (SELECT COUNT(*) FROM knowledgebase) AS knowledgebase_count; EOF echo "" echo "Step 4: Dropping backup tables..." $MYSQL_CMD <<'EOF' DROP TABLE IF EXISTS notifications_backup_20251113; DROP TABLE IF EXISTS notificationtypes_backup_20251113; DROP TABLE IF EXISTS printers_backup_20251113; DROP TABLE IF EXISTS knowledgebase_backup_20251113; SELECT 'Backup tables dropped' AS status; EOF echo "" echo "==========================================" echo "ROLLBACK COMPLETE!" echo "=========================================="