Advertisement
Guest User

Untitled

a guest
Mar 10th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. #/bin/sh
  2.  
  3. #
  4. # Script to migrate databases from prod
  5. #
  6.  
  7. REMOTE_HOST=<your-remote-hostname>
  8. REMOTE_USER=<your-remote-username>
  9.  
  10. # get remote password
  11. read -s -p "Enter mysql password for PROD: " REMOTE_PASSWORD ; echo ; echo
  12.  
  13. LOCAL_HOST=localhost
  14. LOCAL_USER=<your-local-username>
  15. LOCAL_PASSWORD=<your-local-password>
  16.  
  17. # define mysql database
  18. DB=<your-local-database>
  19.  
  20. # detect paths
  21. MYSQL=$(which mysql)
  22. AWK=$(which awk)
  23. GREP=$(which grep)
  24. MYSQLDUMP=$(which mysqldump)
  25.  
  26. # make sure we can connect to the local server
  27. $MYSQL -u $LOCAL_USER -p$LOCAL_PASSWORD -h $LOCAL_HOST -e "use $DB" &>/dev/null
  28. if [ $? -ne 0 ]
  29. then
  30. echo "Error - Cannot connect to $LOCAL_HOST mysql server using given username, password or database does not exits!"
  31. exit 1
  32. fi
  33.  
  34. # make sure we can connect to server
  35. $MYSQL -u $REMOTE_USER -p$remote_REMOTE_PASSWORD -h $REMOTE_HOST -e "use $DB" &>/dev/null
  36. if [ $? -ne 0 ]
  37. then
  38. echo "Error - Cannot connect to $REMOTE_HOST mysql server using given username, password or database does not exits!"
  39. exit 1
  40. fi
  41.  
  42. TABLES=$($MYSQL -u $LOCAL_USER -p$LOCAL_PASSWORD -h $LOCAL_HOST $DB -e 'show tables' | $AWK '{ print $1}' | $GREP -v '^Tables' )
  43. # make sure tables exits
  44. if [ "$TABLES" == "" ]
  45. then
  46. echo "No table found in $DB database on $LOCAL_HOST!"
  47. fi
  48.  
  49. # delete local database tables
  50. echo "Dropping tables in $DB"
  51. for t in $TABLES
  52. do
  53. echo "Deleting $t table from $DB database on $LOCAL_HOST..."
  54. $MYSQL -u $LOCAL_USER -p$LOCAL_PASSWORD -h $LOCAL_HOST $DB -e "drop table $t" &>/dev/null
  55. done
  56.  
  57. echo "Exporting data for $DB from PROD to LOCAL"
  58. $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