Un buon modo per tenere traccia delle modifiche allo schema in più rami di un progetto di sviluppo sarebbe seguire un refactoring del database processi. Tra gli altri vantaggi, questo tipo di processo incorpora l'uso di script delta e di migrazione per applicare le modifiche dello schema a ciascun ambiente (o ramo nel tuo caso). La configurazione potrebbe assomigliare a questa:
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
Ogni volta che è necessario modificare lo schema del database per un particolare ramo, si crea uno script delta SQL che viene utilizzato per applicare la modifica. Per semplificare, suggerirei di nominare ogni file di script per includere la data e l'ora di creazione per mantenerli in sequenza. Un esempio potrebbe essere:
201102231435_addcolumn.sql
201102231447_addconstraint.sql
201103010845_anotherchange.sql
Aggiungere i file delta al controllo del codice sorgente nel ramo in cui è necessario apportare la modifica dello schema. Dovresti ritrovarti con ogni ramo contenente esattamente ciò che è necessario per modificare il database corrispondente. Potrebbe essere necessario modificare alcuni dettagli per la tua situazione a seconda di cose come il tuo schema di ramificazione e se il tuo database viene preservato o meno durante il processo di rilascio (anziché ricreato).
Infine, per cercare di rendere semplici questi concetti, consiglierei uno strumento per aiutare a gestire il processo. Il mio suggerimento è di dare un'occhiata a DBDeploy / DBDeploy.NET . Lo uso felicemente da anni su tutti i miei progetti.