Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #/bin/sh
- #
- # Script to migrate databases from prod
- #
- REMOTE_HOST=<your-remote-hostname>
- REMOTE_USER=<your-remote-username>
- # get remote password
- read -s -p "Enter mysql password for PROD: " REMOTE_PASSWORD ; echo ; echo
- LOCAL_HOST=localhost
- LOCAL_USER=<your-local-username>
- LOCAL_PASSWORD=<your-local-password>
- # define mysql database
- DB=<your-local-database>
- # detect paths
- MYSQL=$(which mysql)
- AWK=$(which awk)
- GREP=$(which grep)
- MYSQLDUMP=$(which mysqldump)
- # make sure we can connect to the local server
- $MYSQL -u $LOCAL_USER -p$LOCAL_PASSWORD -h $LOCAL_HOST -e "use $DB" &>/dev/null
- if [ $? -ne 0 ]
- then
- echo "Error - Cannot connect to $LOCAL_HOST mysql server using given username, password or database does not exits!"
- exit 1
- fi
- # make sure we can connect to server
- $MYSQL -u $REMOTE_USER -p$remote_REMOTE_PASSWORD -h $REMOTE_HOST -e "use $DB" &>/dev/null
- if [ $? -ne 0 ]
- then
- echo "Error - Cannot connect to $REMOTE_HOST mysql server using given username, password or database does not exits!"
- exit 1
- fi
- TABLES=$($MYSQL -u $LOCAL_USER -p$LOCAL_PASSWORD -h $LOCAL_HOST $DB -e 'show tables' | $AWK '{ print $1}' | $GREP -v '^Tables' )
- # make sure tables exits
- if [ "$TABLES" == "" ]
- then
- echo "No table found in $DB database on $LOCAL_HOST!"
- fi
- # delete local database tables
- echo "Dropping tables in $DB"
- for t in $TABLES
- do
- echo "Deleting $t table from $DB database on $LOCAL_HOST..."
- $MYSQL -u $LOCAL_USER -p$LOCAL_PASSWORD -h $LOCAL_HOST $DB -e "drop table $t" &>/dev/null
- done
- echo "Exporting data for $DB from PROD to LOCAL"
- $MYSQLDUMP -h $REMOTE_HOST -u $REMOTE_USER -p$REMOTE_PASSWORD $DB | $MYSQL -h $LOCAL_HOST -u $LOCAL_USER -p$LOCAL_PASSWORD $DB
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement