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

3 weeks ago
#!/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}."