Continuous Database Integration (CDI)
Deploy Symphony to your DTAP environments
The Continuous Database Integration (CDI) extension aims to further extend the Database Synchroniser extension created by Nick Dunn and Richard Warrender. There is quite some code resemblance because I copied their original code and documentation and extended it.
The extension allows for automatic updates of the Symphony database by keeping track of every individual query executed while making structural changes. These changes are saved to file and can be committed to the code repository.
After copying the files to the staging environment, your Continuous Integration server can trigger the update of the Symphony database by calling a REST interface (/symphony/extension/cdi/update/).
All queries have an execution order (based on the timestamp they were created). By following the execution order, the CDI extension is aware of any query dependencies. In addition, because the CDI extension registers each executed query, it will never execute the queries twice.
I hope this will allow you to speed up your Symphony development and aid you in applying structural changes to "live" production environments.
Although the extension is designed to assist you with the entire release chain of development, test, acceptance and production, I cannot guarantee that it is stable. Be sure that you have executed the database updates on all environments before going to production. To avoid the risk of database integrity issues, be sure to create a backup of your data in production, and only run the upgrade in maintenance mode. This allows you to revert any damage that was caused by this extension.
Up to version 1.0.0 non of the tags have been backward compatible.
Starting with the 1.0.0 release the backwards compatibility policy will be as follows:
Major releases can break compatibility and will only contain an upgrade guide (no automation) as this may involve manual steps on all instances.
Minor and Revision point releases will not break with previous releases or will come with an update script to support updating
The release milestones are listed on GitHub: https://github.com/remie/CDI/issues/milestones
A list of all open issues can be found here: https://github.com/remie/CDI/issues
Release Notes & Install Guide
Can both be found in the GitHub repository!