Muitos dos meus projetos de desenvolvimento web são construídos sobre sistemas de gerenciamento de conteúdo. A fim de manter algum senso de controle de versão do banco de dados, sem realmente colocar o banco de dados sob o controle de origem, eu executo um despejo do banco de dados mysql ao anexar um timestamp e o git commit SHA id ao nome do arquivo para referência.
Aqui está meu arquivo git pós-commit para fazer isso:
#!/bin/sh
# ./.git/hooks/post-commit
# dump local database and store
# Time and commit id
current_time=$(date +%F-%H_%M_%S)
git_commit_id=$(git rev-parse --short HEAD)
# Go go database dump
printf "==> Dumping DB ..."
mysqldump -u root -p'your password here' database-name | cat > ~/db/database-name-$current_time-$git_commit_id.sql
printf " Done. [database-name-$current_time-$git_commit_id.sql]nn"
Substitua os detalhes de login do mysql, caminho e nome do banco de dados pelas configurações específicas do seu ambiente.