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