#!/bin/bash # Direct import of production data into dev database # This script concatenates all SQL files and imports them in one go echo "==========================================" echo "Production Data Import Script" echo "Date: 2025-11-13" echo "==========================================" echo "" MYSQL_CMD="docker exec -i dev-mysql mysql -u root -prootpassword shopdb" echo "Step 1: Creating backup tables..." $MYSQL_CMD <<'EOF' DROP TABLE IF EXISTS `notifications_backup_20251113`; CREATE TABLE `notifications_backup_20251113` LIKE `notifications`; INSERT INTO `notifications_backup_20251113` SELECT * FROM `notifications`; DROP TABLE IF EXISTS `notificationtypes_backup_20251113`; CREATE TABLE `notificationtypes_backup_20251113` LIKE `notificationtypes`; INSERT INTO `notificationtypes_backup_20251113` SELECT * FROM `notificationtypes`; DROP TABLE IF EXISTS `printers_backup_20251113`; CREATE TABLE `printers_backup_20251113` LIKE `printers`; INSERT INTO `printers_backup_20251113` SELECT * FROM `printers`; DROP TABLE IF EXISTS `knowledgebase_backup_20251113`; CREATE TABLE `knowledgebase_backup_20251113` LIKE `knowledgebase`; INSERT INTO `knowledgebase_backup_20251113` SELECT * FROM `knowledgebase`; SELECT 'Backup tables created' AS status; EOF echo "" echo "Step 2: Showing current counts..." $MYSQL_CMD <<'EOF' SELECT '=== BEFORE IMPORT ===' AS ''; SELECT (SELECT COUNT(*) FROM notifications) AS notifications_before, (SELECT COUNT(*) FROM notificationtypes) AS notificationtypes_before, (SELECT COUNT(*) FROM printers) AS printers_before, (SELECT COUNT(*) FROM knowledgebase) AS knowledgebase_before; EOF echo "" echo "Step 3: Importing notification types..." cat /home/camp/projects/windows/shopdb/sql/prod_notificationtypes.sql | $MYSQL_CMD 2>&1 | tail -5 echo "" echo "Step 4: Importing notifications..." cat /home/camp/projects/windows/shopdb/sql/prod_notifications.sql | $MYSQL_CMD 2>&1 | tail -5 echo "" echo "Step 5: Importing printers..." cat /home/camp/projects/windows/shopdb/sql/prod_printers.sql | $MYSQL_CMD 2>&1 | tail -5 echo "" echo "Step 6: Importing knowledgebase..." cat /home/camp/projects/windows/shopdb/sql/prod_knowledgebase.sql | $MYSQL_CMD 2>&1 | tail -5 echo "" echo "Step 7: Verifying imported data..." $MYSQL_CMD <<'EOF' SELECT '=== AFTER IMPORT ===' AS ''; SELECT (SELECT COUNT(*) FROM notifications) AS notifications_after, (SELECT COUNT(*) FROM notificationtypes) AS notificationtypes_after, (SELECT COUNT(*) FROM printers) AS printers_after, (SELECT COUNT(*) FROM knowledgebase) AS knowledgebase_after; EOF echo "" echo "Step 8: Sample data verification..." $MYSQL_CMD <<'EOF' SELECT '=== Notification Types ===' AS ''; SELECT notificationtypeid, typename, typedescription, typecolor, isactive FROM notificationtypes ORDER BY notificationtypeid; SELECT '=== Recent Active Notifications (Top 5) ===' AS ''; SELECT notificationid, notificationtypeid, notification, starttime, endtime, ticketnumber, isactive FROM notifications WHERE isactive = 1 ORDER BY starttime DESC LIMIT 5; SELECT '=== Active Printers (Top 10) ===' AS ''; SELECT printerid, printerwindowsname, ipaddress, serialnumber, isactive, iscsf FROM printers WHERE isactive = 1 LIMIT 10; SELECT '=== Top Knowledge Base Articles (Top 10) ===' AS ''; SELECT linkid, LEFT(shortdescription, 60) AS description, clicks, isactive FROM knowledgebase WHERE isactive = 1 ORDER BY clicks DESC LIMIT 10; EOF echo "" echo "==========================================" echo "IMPORT COMPLETE!" echo "==========================================" echo "" echo "Backup tables created with _backup_20251113 suffix" echo "" echo "To rollback, run:" echo " bash /home/camp/projects/windows/shopdb/sql/rollback_prod_import.sh" echo ""