mirror of
https://github.com/uprightbass360/AzerothCore-RealmMaster.git
synced 2026-01-13 00:58:34 +00:00
fix: update import/export to use params
This commit is contained in:
@@ -2,17 +2,17 @@
|
||||
# Export auth and character databases to ExportBackup_<timestamp>/
|
||||
set -euo pipefail
|
||||
|
||||
MYSQL_PW="${MYSQL_ROOT_PASSWORD}"
|
||||
DB_AUTH="${DB_AUTH_NAME}"
|
||||
DB_CHAR="${DB_CHARACTERS_NAME}"
|
||||
|
||||
usage(){
|
||||
cat <<EOF
|
||||
Usage: ./backup-export.sh [output_dir]
|
||||
Usage: ./backup-export.sh [output_dir] <mysql_password> <auth_db> <characters_db>
|
||||
|
||||
Creates a timestamped backup of the auth and character databases.
|
||||
If output_dir is provided, places the timestamped folder inside it
|
||||
(default: .).
|
||||
|
||||
Arguments:
|
||||
[output_dir] Output directory (default: .)
|
||||
<mysql_password> MySQL root password (required)
|
||||
<auth_db> Auth database name (required)
|
||||
<characters_db> Characters database name (required)
|
||||
|
||||
Outputs:
|
||||
ExportBackup_YYYYMMDD_HHMMSS/
|
||||
@@ -28,6 +28,26 @@ case "${1:-}" in
|
||||
-h|--help) usage; exit 0;;
|
||||
esac
|
||||
|
||||
MYSQL_PW="$2"
|
||||
DB_AUTH="$3"
|
||||
DB_CHAR="$4"
|
||||
|
||||
# Check if required parameters are provided
|
||||
if [[ -z "$MYSQL_PW" ]]; then
|
||||
echo "Error: MySQL password required as second argument." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -z "$DB_AUTH" ]]; then
|
||||
echo "Error: Auth database name required as third argument." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -z "$DB_CHAR" ]]; then
|
||||
echo "Error: Characters database name required as fourth argument." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DEST_PARENT="${1:-.}"
|
||||
TIMESTAMP="$(date +%Y%m%d_%H%M%S)"
|
||||
DEST_DIR="${DEST_PARENT%/}/ExportBackup_${TIMESTAMP}"
|
||||
|
||||
@@ -2,24 +2,28 @@
|
||||
# Restore auth and character databases from ImportBackup/ and verify service health.
|
||||
set -euo pipefail
|
||||
|
||||
BACKUP_DIR="${1:-ImportBackup}"
|
||||
MYSQL_PW="${MYSQL_ROOT_PASSWORD}"
|
||||
DB_AUTH="${DB_AUTH_NAME}"
|
||||
DB_CHAR="${DB_CHARACTERS_NAME}"
|
||||
DB_WORLD="${DB_WORLD_NAME}"
|
||||
|
||||
COLOR_RED='\033[0;31m'
|
||||
COLOR_GREEN='\033[0;32m'
|
||||
COLOR_YELLOW='\033[1;33m'
|
||||
COLOR_RESET='\033[0m'
|
||||
|
||||
log(){ printf '%b\n' "${COLOR_GREEN}$*${COLOR_RESET}"; }
|
||||
warn(){ printf '%b\n' "${COLOR_YELLOW}$*${COLOR_RESET}"; }
|
||||
err(){ printf '%b\n' "${COLOR_RED}$*${COLOR_RESET}"; }
|
||||
|
||||
usage(){
|
||||
cat <<EOF
|
||||
Usage: ./backup-import.sh [backup_dir]
|
||||
Usage: ./backup-import.sh [backup_dir] <mysql_password> <auth_db> <characters_db> <world_db>
|
||||
|
||||
Restores user accounts and characters from a backup folder.
|
||||
|
||||
Default backup directory: ImportBackup/
|
||||
Arguments:
|
||||
[backup_dir] Backup directory (default: ImportBackup/)
|
||||
<mysql_password> MySQL root password (required)
|
||||
<auth_db> Auth database name (required)
|
||||
<characters_db> Characters database name (required)
|
||||
<world_db> World database name (required)
|
||||
|
||||
Required files:
|
||||
acore_auth.sql or acore_auth.sql.gz
|
||||
acore_characters.sql or acore_characters.sql.gz
|
||||
@@ -39,9 +43,32 @@ case "${1:-}" in
|
||||
-h|--help) usage; exit 0;;
|
||||
esac
|
||||
|
||||
log(){ printf '%b\n' "${COLOR_GREEN}$*${COLOR_RESET}"; }
|
||||
warn(){ printf '%b\n' "${COLOR_YELLOW}$*${COLOR_RESET}"; }
|
||||
err(){ printf '%b\n' "${COLOR_RED}$*${COLOR_RESET}"; }
|
||||
BACKUP_DIR="${1:-ImportBackup}"
|
||||
MYSQL_PW="$2"
|
||||
DB_AUTH="$3"
|
||||
DB_CHAR="$4"
|
||||
DB_WORLD="$5"
|
||||
|
||||
# Check if required parameters are provided
|
||||
if [[ -z "$MYSQL_PW" ]]; then
|
||||
err "MySQL password required as second argument."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -z "$DB_AUTH" ]]; then
|
||||
err "Auth database name required as third argument."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -z "$DB_CHAR" ]]; then
|
||||
err "Characters database name required as fourth argument."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -z "$DB_WORLD" ]]; then
|
||||
err "World database name required as fifth argument."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
require_file(){
|
||||
local file="$1"
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
#!/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