I'm doing this on MYSQL. It puts all the tables schema and data into their own file so I can easily see what has changed. Unlike most of the other solutions in this thread this solution gets the data, which is important for a CMS. for x in `mysql --skip-column-names -u root -ppassword dbname -e 'show tables;'`; do mysqldump -u root -ppassword --compact --extended-insert=FALSE --replace dbname $x > "./db/$x.sql" done