Skip to content

Instantly share code, notes, and snippets.

@alexey-krivoshapko
Created April 9, 2019 11:37
Show Gist options
  • Save alexey-krivoshapko/7c10d01b617896b206f3b77b6e5acee2 to your computer and use it in GitHub Desktop.
Save alexey-krivoshapko/7c10d01b617896b206f3b77b6e5acee2 to your computer and use it in GitHub Desktop.
Pull the remote database to the MySQL Docker container.
#!/bin/bash
# Production credentials
DB_PROD_HOST=""
DB_PROD_NAME=""
DB_PROD_USER=""
DB_PROD_PASS=""
# Local credentials
DB_LOCAL_HOST=""
DB_LOCAL_NAME=""
DB_LOCAL_USER=""
DB_LOCAL_PASS=""
CHARACTER="utf8"
COLLATE="utf8_general_ci"
# Inner variables
CHANGE_MYSQL_DIR="cd /var/lib/mysql"
RM_DUMP="rm $DB_PROD_NAME.sql || true"
CREATE_DUMP="mysqldump -h$DB_PROD_HOST -u$DB_PROD_USER -p$DB_PROD_PASS $DB_PROD_NAME > $DB_PROD_NAME.sql"
RM_LOCAL_DB="mysql -h$DB_LOCAL_HOST -u$DB_LOCAL_USER -p$DB_LOCAL_PASS -e 'drop database $DB_LOCAL_NAME' || true"
CREATE_LOCAL_DB="mysql -h$DB_LOCAL_HOST -u$DB_LOCAL_USER -p$DB_LOCAL_PASS -e 'create database $DB_LOCAL_NAME character set $CHARACTER collate $COLLATE'"
IMPORT_DUMP="mysql -h$DB_LOCAL_HOST -u$DB_LOCAL_USER -p$DB_LOCAL_PASS $DB_LOCAL_NAME < $DB_PROD_NAME.sql"
COMMAND="$CHANGE_MYSQL_DIR && $RM_DUMP && $CREATE_DUMP && $RM_LOCAL_DB && $CREATE_LOCAL_DB && $IMPORT_DUMP"
read -p "Pull db from live? (Y/N): " pull_db
if [[ ${pull_db} == [yY] || ${pull_db} == [yY][eE][sS] ]]; then
docker exec -it -u 1000 db bash -c "$COMMAND"
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment