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.