views:

186

answers:

1

I have a web application project that works with quite large database (over 5GB). Data in the database is partitioned by project. Each project takes approximately 1GB, and it is a minimal set for application to work (we do some math calculations that spread across this dataset and removing a part of the dataset is not an option).

As a part of the daily build we also deploy our app into a test environment. To do so, a builder runs a custom DB update utility that updates the current DB to the appropriate version. But we also have a requirement to keep all the daily builds so that QA team could "go back in time" and compare calculation results from different builds. As much as we try to have a backward compatible data schema sometimes it is very challenging and time consuming. So, hence the question:

What approach to the database versioning would you use if you had a requirement to keep previous daily builds up and running and need to manage large database when doing daily builds?

We use SQL Server 2005 and ColdFusion with some Java at the front-end if it makes any difference.

+2  A: 

I would suggest reading Leon Bambrick's list titled 11 Tools for Database Versioning

And I would add Visual Studio for Database Professionals to the list which can be found here

Also Jeff Atwood has a nice blog post on the subject with links to some background reading.

Chris Andrews