Editorials

Wait and Compare Database Change

Every time I am involved in a project where database changes are packaged and scripted as some event such as Systems Integration Testing or User Acceptance Testing begins, I am reminded of pitfalls inherent in this strategy.

Changes that have been made in an individual sandbox (if there are any) or in a development environment, are often missed or forgotten, resulting in not keeping the database synchronized with the application code. Missed database changes are often found through application errors, or poor performance.

I find indexes to be one of the most frequently missed aspect of database change. They are modified during development in an ad-hoc fashion, and never scripted to deploy to another environment. Statistics is another feature that is often neglected, while having a big impact on the change.

Including your database changes in continuous integration solves all of these problems. Database comparison is valuable. Database comparison is not a good way to package things for deployment. It is too fragile, and dependent on the memory of developers.

So far the only tool I have come across that really manages database change in all phases of development, testing and deployment is DBMaestro. Of course this is limited to my personal experience…there may be other tools of which I am either not aware, or have not experienced.

Is Wait and Compare working for you? Leave your comment or drop an Email to btaylor@sswug.org.

Cheers,

Ben