Skip to content

Instantly share code, notes, and snippets.

@flevour
Created September 26, 2012 15:37
Show Gist options
  • Save flevour/3788748 to your computer and use it in GitHub Desktop.
Save flevour/3788748 to your computer and use it in GitHub Desktop.
Copy MySQL db without dump - Drupal specific version (contains a little fix for users table)
#!/bin/bash
# Credits: http://stackoverflow.com/a/1995186/213903
DBUSER=user
DBPASSWORD=pass
DBSNAME=sourceDb
DBNAME=destinationDb
DBSERVER=servername
fCreateTable=""
fInsertData=""
echo "Copying database ... (may take a while ...)"
DBCONN="-h ${DBSERVER} -u ${DBUSER} --password=${DBPASSWORD}"
for TABLE in `echo "SHOW TABLES" | mysql $DBCONN $DBSNAME | tail -n +2`; do
createTable=`echo "SHOW CREATE TABLE ${TABLE}"|mysql -B -r $DBCONN $DBSNAME|tail -n +2|cut -f 2-`
fCreateTable="${fCreateTable} ; ${createTable}"
insertData="INSERT INTO ${DBNAME}.${TABLE} SELECT * FROM ${DBSNAME}.${TABLE}"
fInsertData="${fInsertData} ; ${insertData}"
done;
fUpdateUsers="UPDATE ${DBNAME}.\`users\` SET \`uid\` = '0' WHERE \`users\`.\`name\` = '' LIMIT 1"
echo "$fCreateTable ; $fInsertData; $fUpdateUsers" | mysql $DBCONN $DBNAME
echo "Database ${DBNAME} copied from ${DBSNAME}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment