cisd/scripts/resource-restore/restore-db.sh
2026-05-19 17:12:53 +08:00

64 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
MYSQL_PATH="mysql"
HOST=""
PORT=""
USERNAME=""
PASSWORD=""
DB_NAME=""
SQL_FILE=""
while [[ $# -gt 0 ]]; do
case "$1" in
--mysql-path)
MYSQL_PATH="${2:-}"
shift 2
;;
--host)
HOST="${2:-}"
shift 2
;;
--port)
PORT="${2:-}"
shift 2
;;
--username)
USERNAME="${2:-}"
shift 2
;;
--password)
PASSWORD="${2:-}"
shift 2
;;
--db-name)
DB_NAME="${2:-}"
shift 2
;;
--sql-file)
SQL_FILE="${2:-}"
shift 2
;;
*)
echo "[ERROR] unsupported argument: $1" >&2
exit 1
;;
esac
done
if [[ -z "${HOST}" || -z "${PORT}" || -z "${USERNAME}" || -z "${DB_NAME}" || -z "${SQL_FILE}" ]]; then
echo "[ERROR] missing required database restore arguments" >&2
exit 1
fi
if [[ ! -f "${SQL_FILE}" ]]; then
echo "[ERROR] sql file not found: ${SQL_FILE}" >&2
exit 1
fi
"${MYSQL_PATH}" \
--host="${HOST}" \
--port="${PORT}" \
--user="${USERNAME}" \
--password="${PASSWORD}" < "${SQL_FILE}"