Ein guter Weg, um Änderungen am Schema in mehreren Zweigen eines Entwicklungsprojekts nachverfolgen zu können, wäre, einem Datenbank-Refactoring-Prozess zu folgen. Dieser Prozess beinhaltet unter anderem die Verwendung von Delta- und Migrationscripts, um Schema-Änderungen in jeder Umgebung (oder in Ihrem Fall in jedem Zweig) anzuwenden. Die Einrichtung könnte ungefähr so aussehen:
main
src <-- ASP.NET Projektquelle
db <-- Datenbank-Erstellscripts
delta <-- Datenbank-Änderungs-Scripts (SQL Delta-Dateien)
branch
src
db <-- hat normalerweise die gleichen Inhalte wie die Kopie im Hauptzweig
delta <-- nur die für diesen Zweig notwendigen Änderungen
Jedes Mal, wenn Sie das Datenbankschema für einen bestimmten Zweig ändern müssen, erstellen Sie ein SQL Delta-Script, das die Änderung anwendet. Um es einfacher zu machen, würde ich vorschlagen, jedem Script-File das Erstellungsdatum und die Uhrzeit hinzuzufügen, um sie in Reihenfolge zu halten. Beispiel:
201102231435_addcolumn.sql
201102231447_addconstraint.sql
201103010845_anotherchange.sql
Fügen Sie die Delta-Dateien dem Quellcode in dem Zweig hinzu, in dem die Schema-Änderung vorgenommen werden muss. Am Ende sollte jeder Zweig genau das enthalten, was notwendig ist, um die entsprechende Datenbank zu ändern. Einige Details müssen möglicherweise je nach Ihrer Situation angepasst werden, abhängig von Dingen wie Ihrem Branching-Schema und ob Ihre Datenbank während Ihres Freigabeprozesses erhalten bleibt (im Gegensatz zu neu erstellt wird).
Zuletzt, um diese Konzepte einfach zu halten, würde ich empfehlen, ein Tool zur Verwaltung des Prozesses zu verwenden. Meine Empfehlung ist, sich DBDeploy / DBDeploy.NET anzusehen. Ich benutze es seit Jahren auf all meinen Projekten und bin sehr zufrieden damit.