I m part of a development team that works on many CMS based projects, using systems like Joomla and Drupal.
In our development process, all of our code changes are managed inside of Git. At the end of a sprint, we create a DIFF that we can apply via patch to live site.
The problem is that most of the time, the changes include
- Database Schema Changes
- Database Data Changes
- Source Code changes
- Binary file changes (like images)
Git Diff handles Source Code changes beautifully. Binary files are only not included in the Diff except for reference to the fact that the files have changed.
Database Schema Changes and Database Data Changes are a mess.
I was wandering if anything like an unified patch system exists that could be used to deploy all of these changes in 1 patch.
So the question is, "Is there a system that can be used to deploy all of these changes in 1 shot?
Ideally, this system would allow to run dry-run like patch, but for all of the 4 data types.
Edit: Thank you everyone for the feedback that you provided, it was a starting point for my research in this area.
Here is what I found so far:
It s difficult to deploy php based applications using linux packaging system because the changes to the project happen iteratively rather then as releases.
It would be possible to use dbconfig to deploy changes to a project, but the problem is generating mysql db diffs (schema and data)
what really is missing for deployment of php based applications is a deployment manager that would be installed on the server and would be the interface for deploying the patches
I started a Google Wave on this topic and produced a lot of information as a result. If anyone is interested in reading this wave, please let me know and I will add you.