10

Utilizziamo le prime migrazioni di codice per mantenere sincronizzati il ​​nostro database e modello. Al momento abbiamo il numero di versione come nome per la migrazione che chiaramente non funziona. Il problema è che più migrazioni con lo stesso nome sono state create da diversi sviluppatori indipendenti l'una dall'altra per il loro database locale. Ciò ha comportato alcuni comportamenti strani poiché lo IMigrationMetadata.Id era diverso a causa del timestamp, ma le classi sono parziali con lo stesso nome.Convenzioni di denominazione per migrazioni Code First

Qual è il modo per chiamare queste migrazioni? Gli esempi sono sempre ridicolmente semplificati: ad es. l'aggiunta di una proprietà Readers determina la migrazione AddReaders.

Oppure le migrazioni dovrebbero essere suddivise in questi piccoli cambiamenti? Invece di aver accumulato tutte le modifiche in un'unica grande migrazione. Cosa succede se ci sono dipendenze?

risposta

0

Ho sofferto con lo stesso problema e ho provato diverse soluzioni. Ciò che abbiamo scoperto finora è che tutti gli sviluppatori escludano le migrazioni dal processo di check-in e poi facciano uno sviluppatore designato a fare la "release release" che include le modifiche da tutte le altre che lavorano al progetto.

1

Sì, penso che il modo migliore sia quello di suddividere le modifiche in piccole unità, con nomi descrittivi. Come con git, dove dovresti commettere spesso, con le migrazioni dovresti migrare spesso. Non necessariamente proprietà per proprietà, ma contenente un'unità logica di lavoro.

Come se fosse necessario aggiungere due tabelle per alcune funzionalità, aggiungere queste due tabelle in un'unica migrazione. Evita di effettuare grandi migrazioni in cui il tuo lavoro per giorni cambia i modelli prima di creare una migrazione. Il tempo è essenziale per evitare conflitti.

Se ci sono dipendenze, una migrazione dovrebbe contenere modifiche correlate, quindi se un altro sviluppatore applica la migrazione, l'applicazione funziona ancora.

Quando uno sviluppatore effettua una migrazione, deve essere immediatamente impegnato e sincronizzato (condiviso con altri sviluppatori, nel caso in cui non si utilizzi git).

Quando si lavora con piccole unità di modifica, la fusione e la risoluzione dei conflitti diventa molto più semplice.