最近因為換新筆電 要裝開發環境
想把主機上的多個資料庫 複製到本機
寫了一個可以重複使用的腳本
會直接讀取 .env
檔案
把主機的 mysql db 複製到本機 laradock 內的 mysql
clone_production_database.sh
#!/bin/bash
set -e
SERVER_LARAVEL_APP_PATH='/home/codelove.tw'
echo Start exporting database on the server...
MAIN_TASK="cd ${SERVER_LARAVEL_APP_PATH}"
MAIN_TASK+=' && export $(grep -v "^#" .env | xargs)'
MAIN_TASK+=' && mysqldump --no-tablespaces -h ${DB_HOST} -u${DB_USERNAME} -p${DB_PASSWORD} ${DB_DATABASE} > ${DB_DATABASE}.sql'
ssh tony-main-server ${MAIN_TASK}
echo Start downloading database to the local...
export $(grep -v "^#" .env | xargs)
scp -r tony-main-server:${SERVER_LARAVEL_APP_PATH}/${DB_DATABASE}.sql .
echo Start importing database within the docker...
docker-compose -f ~/laradock-projects/laradock/docker-compose.yml exec -T mysql mysql -u${DB_USERNAME} -p${DB_PASSWORD} ${DB_DATABASE} < ${DB_DATABASE}.sql
echo Done.
因為我大多數專案的結構接近,這段腳本,只要修改 SERVER_LARAVEL_APP_PATH
變數,就可換專案使用