76 lines
2.0 KiB
Bash
Executable File
76 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# Simple Database Import Script
|
||
# Fixes definer issues and imports the database
|
||
|
||
set -e
|
||
|
||
# Colors for output
|
||
RED='\033[0;31m'
|
||
GREEN='\033[0;32m'
|
||
YELLOW='\033[1;33m'
|
||
BLUE='\033[0;34m'
|
||
NC='\033[0m'
|
||
|
||
error() {
|
||
echo -e "${RED}❌ ERROR: $1${NC}"
|
||
exit 1
|
||
}
|
||
|
||
success() {
|
||
echo -e "${GREEN}✅ $1${NC}"
|
||
}
|
||
|
||
info() {
|
||
echo -e "${BLUE}ℹ️ $1${NC}"
|
||
}
|
||
|
||
BACKUP_FILE="/tmp/tilbudgivern_migration/tilbudgivern_backup_20251010_083710.sql"
|
||
CLEANED_FILE="/tmp/tilbudgivern_migration/cleaned_backup.sql"
|
||
|
||
if [ ! -f "$BACKUP_FILE" ]; then
|
||
error "Backup file not found: $BACKUP_FILE"
|
||
fi
|
||
|
||
info "Cleaning backup file to remove definer issues..."
|
||
|
||
# Remove definer clauses and other problematic elements
|
||
sed -e 's/DEFINER=[^*]*\*/\*/g' \
|
||
-e 's/SQL SECURITY DEFINER//g' \
|
||
-e '/^\/\*!50017 DEFINER=/d' \
|
||
"$BACKUP_FILE" > "$CLEANED_FILE"
|
||
|
||
success "Backup file cleaned"
|
||
|
||
info "Importing database (this may take a few minutes)..."
|
||
|
||
# Import with error handling
|
||
if mysql -u tilbuduser -p"${DB_PASSWORD}" tilbudgivern < "$CLEANED_FILE"; then
|
||
success "Database imported successfully!"
|
||
else
|
||
error "Database import failed"
|
||
fi
|
||
|
||
# Verify import
|
||
info "Verifying database import..."
|
||
TABLE_COUNT=$(mysql -u tilbuduser -p"${DB_PASSWORD}" -e "USE tilbudgivern; SHOW TABLES;" 2>/dev/null | wc -l)
|
||
|
||
if [ "$TABLE_COUNT" -gt 1 ]; then
|
||
success "Database verification OK - Found $(($TABLE_COUNT - 1)) tables"
|
||
|
||
# Show some basic stats
|
||
echo ""
|
||
info "Database import summary:"
|
||
mysql -u tilbuduser -p"${DB_PASSWORD}" -e "
|
||
USE tilbudgivern;
|
||
SELECT 'Tables imported:' as info, COUNT(*) as count FROM information_schema.tables WHERE table_schema = 'tilbudgivern'
|
||
UNION ALL
|
||
SELECT 'customer_projects', COUNT(*) FROM customer_projects
|
||
UNION ALL
|
||
SELECT 'project_quotes', COUNT(*) FROM project_quotes;
|
||
" 2>/dev/null
|
||
else
|
||
error "Database verification failed - No tables found"
|
||
fi
|
||
|
||
success "Database migration completed successfully!" |