Esistono pratiche consolidate su come la migrazione delle viste del database possa essere gestita con successo in un ambiente multi-sviluppatore/multi-ramo (VCS)?Gestione della migrazione delle viste del database in un ambiente con più sviluppatori
Abbiamo utilizzato una libreria di migrazione del database per tutte le modifiche dello schema, ma abbiamo incontrato problemi quando diversi sviluppatori in diversi rami di codice hanno modificato la stessa vista, ma il loro punto di origine era lo stesso.
Ogni sviluppatore dispone di una propria copia del database, ma in genere le visualizzazioni richiedono che venga specificata l'intera definizione nella migrazione, ciò significa che quando si eseguono le migrazioni sul database di gestione temporanea o di produzione, qualunque sia la visualizzazione della migrazione run last sovrascrive tutte le modifiche apportate in qualsiasi precedente visualizzazione delle migrazioni.
Esempio:
- View attualmente assomiglia:
SELECT 'x'
. - Lo sviluppatore 1 avvia il ramo A e aggiunge una nuova colonna. La loro migrazione "su" è simile a:
SELECT 'x', 'y'
. - Lo sviluppatore 2 avvia il ramo B e aggiunge una nuova colonna. La loro migrazione "su" assomiglia a:
SELECT 'x', 'z'
. - Lo sviluppatore 2 termina la filiale e esegue le migrazioni. La vista ora sembra
SELECT 'x', 'z'
. - Lo sviluppatore 1 termina il suo ramo e esegue le migrazioni. La vista ora sembra
SELECT 'x', 'y'
e le modifiche dello sviluppatore 2 sono andate perse.
Questo può essere utile: http://stackoverflow.com/questions/13314725/migrations-in-entity-framework-in-a-collaborative-environment –
https://msdn.microsoft.com/en- us/data/dn481501.aspx potrebbe anche essere utile (ed è collegato nel link di Steve Greene sopra) – jjj