I'm starting a new, large server based project using .Net 4 and Visual Studio 2010. I've done this many times before (with various versions), but I've never found a good way to maintain my database. There's been a lot of new technologies in the past few years to make this easier. However, there is one thing I haven't found: A technology/framework that can automatically update a database based on a model, without regenerating the entire thing and losing all the data. Can anyone point me in the direction of anything like that?
If not, can anyone point me in the direction of best practices for such development? We've got one development DB, one test DB and a production DB. I would like to be able to just run some auto generated script or code to update a database according to the latest model. I know that certain changes are harder to track than others, but at the moment about 95% of changes to the schema are added tables or columns. Those changes should be possible to auto generate script for - right?
Any help in helping me get this database off to a good start will be much appreciated!