Existe um one-liner bash mais simples usando mysqldump (de Thingy Ma Jig Blog ).
mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]
Se você está recebendo este erro:
ERROR 1217 (23000) at line 1: Cannot delete or update a parent row:
a foreign key constraint fails
Tente o seguinte:
(echo 'SET foreign_key_checks = 0;';
(mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] |
grep ^DROP);
echo 'SET foreign_key_checks = 1;') | \
mysql -u[USERNAME] -p[PASSWORD] -b [DATABASE]
Agora, ignora as restrições.