You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
yxbd-fangke/scripts/migrate-db-to-yxbd-fangke-a...

38 lines
1.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#!/usr/bin/env bash
# 将本地/源库 bd_fangke_ali251 的结构与数据导入目标库 yxbd_fangke_ali2。
# 用法(在能访问目标 MySQL 的机器上执行):
# export MYSQL_TARGET_HOST=127.0.0.1 # 或 RDS 内网地址
# export MYSQL_TARGET_PORT=3306
# export MYSQL_TARGET_USER=yxbd_fangke_ali2
# export MYSQL_TARGET_PASSWORD='jsy6WQHMR67kY7dN'
# export MYSQL_TARGET_DB=yxbd_fangke_ali2
# # 源库(默认本机 root与开发 .env 一致)
# export MYSQL_SOURCE_HOST=127.0.0.1
# export MYSQL_SOURCE_USER=root
# export MYSQL_SOURCE_PASSWORD=root123456
# export MYSQL_SOURCE_DB=bd_fangke_ali251
# bash scripts/migrate-db-to-yxbd-fangke-ali2.sh
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$ROOT"
MYSQL_SOURCE_HOST="${MYSQL_SOURCE_HOST:-127.0.0.1}"
MYSQL_SOURCE_PORT="${MYSQL_SOURCE_PORT:-3306}"
MYSQL_TARGET_PORT="${MYSQL_TARGET_PORT:-3306}"
MYSQL_SOURCE_USER="${MYSQL_SOURCE_USER:-root}"
MYSQL_SOURCE_PASSWORD="${MYSQL_SOURCE_PASSWORD:-root123456}"
MYSQL_SOURCE_DB="${MYSQL_SOURCE_DB:-bd_fangke_ali251}"
MYSQL_TARGET_HOST="${MYSQL_TARGET_HOST:-127.0.0.1}"
MYSQL_TARGET_USER="${MYSQL_TARGET_USER:-yxbd_fangke_ali2}"
MYSQL_TARGET_PASSWORD="${MYSQL_TARGET_PASSWORD:-jsy6WQHMR67kY7dN}"
MYSQL_TARGET_DB="${MYSQL_TARGET_DB:-yxbd_fangke_ali2}"
echo "Dumping ${MYSQL_SOURCE_DB} from ${MYSQL_SOURCE_HOST} ..."
mysqldump -h"$MYSQL_SOURCE_HOST" -P"$MYSQL_SOURCE_PORT" -u"$MYSQL_SOURCE_USER" -p"$MYSQL_SOURCE_PASSWORD" \
--single-transaction --routines --triggers --default-character-set=utf8mb4 \
"$MYSQL_SOURCE_DB" | \
mysql -h"$MYSQL_TARGET_HOST" -P"$MYSQL_TARGET_PORT" -u"$MYSQL_TARGET_USER" -p"$MYSQL_TARGET_PASSWORD" "$MYSQL_TARGET_DB"
echo "Import finished into ${MYSQL_TARGET_DB}@${MYSQL_TARGET_HOST}."