De toute évidence, vous devez automatiser l'exécution de vos scripts de modification de la base de données - le défi étant de savoir comment décider de l'exécution. La réponse est que vous devez stocker la version du schéma dans la base de données (ou dans les métadonnées de la base de données) et choisir les scripts à exécuter en conséquence - que ce soit pour mettre une base de données à zéro ou appliquer les modifications appropriées.
Ma solution est de mettre mon entretien du schéma de base de données entièrement dans le code, je pense que c'est la meilleure version du writeup je l'ai fait jusqu'à présent:
How to create "embedded" SQL 2008 database file if it doesn't exist?
Code donné assez intelligent pour faire la mise à niveau le schéma en ligne dans votre application ou dans sa propre application console, vous devriez être capable d'intégrer des changements de schémas automatisés dans vos scripts de construction CI. Je suis allé à la chasse un peu plus loin depuis que j'ai écrit ce qui précède - il s'avère que ce que je fais n'est pas différent de Ruby Migrations (je crois que quelque chose de similaire se retrouve également dans Subsonic) sauf que je ne fais pas Je n'ai actuellement aucune capacité «down» pour inverser un changement de schéma (une idée intéressante que je crains d'avoir un code potentiellement destructeur «live»). Il existe un projet .NET open source Migrator.net qui semble utile, mais je ne suis pas sûr de la façon dont il est maintenu activement.
Addendum
Depuis que j'ai écrit cette entité code premier cadre est apparu et ils commencent à faire des progrès avec les migrations - de sorte que serait maintenant vaut le détour. Cependant, je ne pense pas que ce soit encore là et comme plusieurs autres options que j'ai vu ce n'est pas simple. Je dois emballer le mien et le rendre disponible!