65 lines
1.1 KiB
Bash
Executable File
65 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}" \
|
|
"${DB_NAME}" < "${SQL_FILE}"
|