mirror of
https://github.com/uprightbass360/AzerothCore-RealmMaster.git
synced 2026-01-13 00:58:34 +00:00
Add user import/export scripts, improve deploy log gating, and refresh status dashboard metrics
This commit is contained in:
46
scripts/import-backup.sh
Executable file
46
scripts/import-backup.sh
Executable file
@@ -0,0 +1,46 @@
|
||||
#!/bin/bash
|
||||
# Restore auth/characters/world databases from a backup folder.
|
||||
set -euo pipefail
|
||||
|
||||
usage(){
|
||||
cat <<EOF
|
||||
Usage: $0 <backup_dir>
|
||||
<backup_dir> should contain acore_auth.sql.gz, acore_characters.sql.gz, acore_world.sql.gz
|
||||
EOF
|
||||
}
|
||||
|
||||
if [[ $# -ne 1 ]]; then
|
||||
usage; exit 1
|
||||
fi
|
||||
|
||||
BACKUP_DIR="$1"
|
||||
MYSQL_PW="${MYSQL_ROOT_PASSWORD:-azerothcore123}"
|
||||
DB_AUTH="${DB_AUTH_NAME:-acore_auth}"
|
||||
DB_CHAR="${DB_CHARACTERS_NAME:-acore_characters}"
|
||||
DB_WORLD="${DB_WORLD_NAME:-acore_world}"
|
||||
|
||||
[[ -d "$BACKUP_DIR" ]] || { echo "Backup dir not found: $BACKUP_DIR" >&2; exit 1; }
|
||||
|
||||
restore(){
|
||||
local db="$1" file="$2"
|
||||
if [[ ! -f "$file" ]]; then
|
||||
echo "Skipping $db (missing $file)"; return
|
||||
fi
|
||||
echo "Importing $file into $db"
|
||||
case "$file" in
|
||||
*.sql.gz) gzip -dc "$file" ;;
|
||||
*.sql) cat "$file" ;;
|
||||
*) echo "Unsupported file type: $file" >&2; return ;;
|
||||
esac | docker exec -i ac-mysql mysql -uroot -p"$MYSQL_PW" "$db"
|
||||
}
|
||||
|
||||
restore "$DB_AUTH" "$BACKUP_DIR/acore_auth.sql.gz"
|
||||
restore "$DB_CHAR" "$BACKUP_DIR/acore_characters.sql.gz"
|
||||
# optional world restore
|
||||
if [[ -f "$BACKUP_DIR/acore_world.sql.gz" ]]; then
|
||||
echo "World dump found. Restore? [y/N]"
|
||||
read -r ans
|
||||
if [[ "$ans" =~ ^[Yy]$ ]]; then
|
||||
restore "$DB_WORLD" "$BACKUP_DIR/acore_world.sql.gz"
|
||||
fi
|
||||
fi
|
||||
Reference in New Issue
Block a user