Stiamo appena iniziando a utilizzare l'approccio Entity Framework Code First e sto giocando con il sistema Code Migrations.
Quindi ci stavamo chiedendo, i file di migrazione pensati per essere trattati come codice generato e non dovrebbero essere modificati o dovrebbero essere generati per te come scaffold e quindi puoi aggiungere cose extra come valori predefiniti e dati extra ad esso?
Proprio perché l'avvio sembra come se fosse abbastanza facile avere il database fuori sincrono se una migrazione è stata eseguita in modo errato ei metodi Down () non necessariamente ripuliscono il metodo Up. E il problema è che non puoi davvero sapere se funziona finché non hai effettivamente bisogno di invertire la migrazione.
Inoltre, le migrazioni dovrebbero essere cambiate, eliminate o re-impalcate se sono state archiviate e sicuramente se sono state portate a un livello superiore? Perché posso vedere i membri del team A in una migrazione, quindi il membro del team B lo controlla e lo esegue, se il membro del team A lo modifica ora, quindi entrambi avrebbero versioni diverse dei database e potrebbe non esserci un modo semplice per invertirlo come tutti i file di migrazione sono stati modificati.
Sembra che le migrazioni di codice sembrino una tecnologia potente ma ci sono situazioni in cui i database non riescono a sincronizzarsi con il processo di migrazione e quindi sembra in un requisito di squadra, devono esserci alcune regole in atto.
Quali sono le migliori pratiche per garantire che le migrazioni di codice funzionino bene in un ambiente di squadra?