module setup process

This commit is contained in:
uprightbass360
2025-11-17 02:23:53 -05:00
parent ea908dbbcf
commit d3484a3aea
30 changed files with 7685 additions and 430 deletions

View File

@@ -34,6 +34,35 @@ Notes:
EOF
}
verify_databases_populated() {
local mysql_host="${CONTAINER_MYSQL:-ac-mysql}"
local mysql_port="${MYSQL_PORT:-3306}"
local mysql_user="${MYSQL_USER:-root}"
local mysql_pass="${MYSQL_ROOT_PASSWORD:-root}"
local db_auth="${DB_AUTH_NAME:-acore_auth}"
local db_world="${DB_WORLD_NAME:-acore_world}"
local db_characters="${DB_CHARACTERS_NAME:-acore_characters}"
if ! command -v mysql >/dev/null 2>&1; then
echo "⚠️ mysql client is not available to verify restoration status"
return 1
fi
local query="SELECT COUNT(*) FROM information_schema.tables WHERE table_schema IN ('$db_auth','$db_world','$db_characters');"
local table_count
if ! table_count=$(MYSQL_PWD="$mysql_pass" mysql -h "$mysql_host" -P "$mysql_port" -u "$mysql_user" -N -B -e "$query" 2>/dev/null); then
echo "⚠️ Unable to query MySQL at ${mysql_host}:${mysql_port} to verify restoration status"
return 1
fi
if [ "${table_count:-0}" -gt 0 ]; then
return 0
fi
echo "⚠️ MySQL is reachable but no AzerothCore tables were found"
return 1
}
case "${1:-}" in
-h|--help)
print_help
@@ -70,10 +99,17 @@ fi
echo "🔍 Checking restoration status..."
if [ -f "$RESTORE_SUCCESS_MARKER" ]; then
echo "✅ Backup restoration completed successfully"
cat "$RESTORE_SUCCESS_MARKER" || true
echo "🚫 Skipping database import - data already restored from backup"
exit 0
if verify_databases_populated; then
echo "✅ Backup restoration completed successfully"
cat "$RESTORE_SUCCESS_MARKER" || true
echo "🚫 Skipping database import - data already restored from backup"
exit 0
fi
echo "⚠️ Restoration marker found, but databases are empty - forcing re-import"
rm -f "$RESTORE_SUCCESS_MARKER" 2>/dev/null || true
rm -f "$RESTORE_SUCCESS_MARKER_TMP" 2>/dev/null || true
rm -f "$RESTORE_FAILED_MARKER" 2>/dev/null || true
fi
if [ -f "$RESTORE_FAILED_MARKER" ]; then
@@ -352,6 +388,15 @@ EOF
# Verify and apply missing updates
verify_and_update_restored_databases
if [ -x "/tmp/restore-and-stage.sh" ]; then
echo "🔧 Running restore-time module SQL staging..."
MODULES_DIR="/modules" \
RESTORE_SOURCE_DIR="$backup_path" \
/tmp/restore-and-stage.sh
else
echo " restore-and-stage helper not available; skipping automatic module SQL staging"
fi
exit 0
else
echo "$(date): Backup restoration failed - proceeding with fresh setup" > "$RESTORE_FAILED_MARKER"