Ett bra sätt att hålla reda på schemaändringar över flera grenar av ett utvecklingsprojekt skulle vara att följa en databasrefaktorering bearbeta. Bland andra fördelar inkluderar denna typ av process användningen av delta- och migreringsskript för att tillämpa schemaändringar i varje miljö (eller gren i ditt fall). Inställningen kan se ut ungefär så här:
main
src <-- ASP.NET project source
db <-- Database create scripts
delta <-- Database change scripts (SQL delta files)
branch
src
db <-- usually has the same contents as the copy in main branch
delta <-- only the changes necessary for this branch
Varje gång du behöver ändra databasschemat för en viss gren skapar du ett SQL delta-skript som används för att tillämpa ändringen. För att göra det enklare skulle jag föreslå att du namnger varje skriptfil för att inkludera skapa datum och tid för att hålla dem i ordning. Exempel skulle vara:
201102231435_addcolumn.sql
201102231447_addconstraint.sql
201103010845_anotherchange.sql
Lägg till deltafilerna till källkontrollen i grenen där schemaändringen måste göras. Du bör sluta med att varje gren innehåller exakt vad som krävs för att ändra motsvarande databas. Vissa detaljer kan behöva justeras för din situation beroende på saker som ditt förgreningsschema och om din databas bevaras eller inte under din releaseprocess (i motsats till att återskapas).
Slutligen, för att försöka göra dessa koncept enkla, skulle jag rekommendera ett verktyg som hjälper dig att hantera processen. Mitt förslag är att ta en titt på DBDeploy / DBDeploy.NET . Jag har med glädje använt det i flera år på alla mina projekt.