I've got a drupal site, and i'm storing the codebase inside a git repository. This appears to become exercising well, but I am also making changes towards the database. I am thinking about doing periodic dumps from the database and carrying out to git. I'd a couple of questions regarding this.

  1. Basically overwrite the file, will git believe it is a completely new file or does it recognize that it's an changed version of the identical file.

  2. Will this potentialy make my repo huge (the database is 16mb)

  3. Can One zip this file? or will this mess Git up ... the zipped version is just 3mb

  4. Every other suggestions?

For those who have enough space, a non-compressed dump in source control is fairly handy since you can compare using a diff program what rows were added/modified/erased.

Another solution is by using the characteristics module which is designed to capture drupal config in code. It stores this taken data like a feature module which you'll put in version control.

For my database programs, I store scripts of DDL claims (like CREATE TABLE) in certain kind of version control system. These scripts sometimes include static "seed" data too. All of the version control systems I personally use are great at realizing variations during these files, and they're much more compact compared to full database with data.

For that dynamically-produced data, I store backup copies (e.g. from mysqldump) within an appropriate location (with respect to the need for the information, that could include off-site backup copies).