How to migrate database with git?
I do website development (primarily Drupal base sites) and have a workflow with:
- many developers working on their Local machines
- developers use git to merge their changes on a Development machine
- when the dev site hits a stable point, we push to a Staging server for the client to review
- and finally we make releases to the Production server
And git is moving the files nicely back and forth. My question is how do I one-up this and use git to migrate the database along with the files?
And once I am able to move dev databases up the ladder, how do I merge development databases with the active production database?
One Solution collect form web for “How to migrate database with git?”
Most straightforward thing to start with is to just dump the database into one file and store it in the git as well as the sources. But be sure not to leak this file into the production webroot, so that some
schema.sql is not easily available by HTTP. It’s convenient to store sources at
/webroot and db at
/db subdirectories of your repository, making the
/webroot actual root of web server.
You’ll then see some updates and merges, and even conflicts around this file — these should be resolved as usual you do to your code files.
After all merges and conflict resolutions of both schema code and executable code you should thoroughly test your application end-to-end.