Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Gestione delle modifiche al database tra rami di versione/rollback in ASP.NET

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.