I am looking for a way to do daily deployments and keep the database scripts in line with releases.
Currently, we have a fairly decent way of deploying our source, we have unit code coverage, Continuous integration and rollback procedures.
The problem is keeping the DB scripts in line with a release. Everyone seems to try the script out on the test DB then run them on live, when the ORM mappings are updated(IE the changes goes live) then it picks up the new column.
The first problem is that none of the scripts HAVE to be written anywhere, generally everyone "attempts" to put them into a subversion folder but some of the lazier people just run the script on live and most of the time no one knows who has done what to the DB.
The second issue is that we have 4 test databases and they are ALWAYS out of line and the only way to truly line them back up is to do a restore from the live database.
I am a big believer that a process like this needs to be simple, straightforward and easy to use in order to help a developer, not hinder them.
What I am looking for a technique/ideas that make it EASY for the developer to want to record their DB scripts so they can be ran as part of a release procedure.A process that the developer would want to follow.
Any stories, use cases or even a link would helpful.