Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Quando si lavora con le migrazioni negli ambienti del team, possono verificarsi vari problemi quando le migrazioni vengono aggiunte da più sviluppatori contemporaneamente; Si noti che le migrazioni non sono semplicemente script SQL, ma includono anche uno snapshot del modello al momento della migrazione.
Si supponga, ad esempio, che lo sviluppatore A e B crei contemporaneamente rami di lavoro e generi una migrazione nei relativi rami. Se lo sviluppatore A unisce il ramo e quindi lo sviluppatore B esegue la stessa operazione, la migrazione più recente (sviluppatore B) avrà uno snapshot del contesto che non include le modifiche dalla migrazione dello sviluppatore A. Ciò può causare vari tipi di danneggiamento nelle migrazioni successive.
Di conseguenza, è consigliabile coordinare in anticipo ed evitare di lavorare simultaneamente sulle migrazioni in più rami, quando possibile.
Identificazione di alberi di migrazione divergenti
Annotazioni
Questa funzionalità viene introdotta in EF Core 11 dall'anteprima 3 in poi.
A partire da EF 11, lo snapshot del modello registra l'ID della migrazione più recente. Ciò significa che se due sviluppatori creano una migrazione in rami separati, l'unione di tali rami genererà un conflitto di controllo del codice sorgente nel file di snapshot del modello, poiché entrambi i rami modificano l'ID migrazione più recente. Questo conflitto è un segnale importante: indica che gli alberi di migrazione sono divergenti e uno di essi deve essere scartato prima di procedere.
Per risolvere questo problema, seguire la procedura descritta in Risoluzione degli alberi di migrazione divergenti di seguito: interrompere l'unione, rimuovere la migrazione (mantenendo le modifiche del modello), unire le modifiche del compagno di team e quindi aggiungere nuovamente la migrazione.
Risoluzione di alberi di migrazione divergenti
Se, durante la fusione di un ramo, viene rilevato un albero di migrazione divergente, risolvilo ricreando la tua migrazione. Segui questi passaggi:
- Interrompi l'unione ed esegui un rollback nella tua directory di lavoro prima dell'unione
- Rimuovere la migrazione (ma mantenere le modifiche del modello)
- Unire le modifiche del compagno di squadra nella directory di lavoro
- Riaggiungi la tua migrazione
Una volta completata questa operazione, la migrazione si integra senza problemi alle migrazioni aggiunte nell'altro ramo, e il suo snapshot di contesto include tutte le modifiche precedenti. La migrazione può ora essere condivisa in modo sicuro con il resto del team.