Migrazioni in ambienti team

Quando si lavora con le migrazioni negli ambienti del team, prestare particolare attenzione al file di snapshot del modello. Questo file può indicare se la migrazione del compagno di team si unisce in modo pulito con il proprio o se è necessario risolvere un conflitto ricreando la migrazione prima di condividerla.

Unione

Quando si uniscono le migrazioni dai colleghi di team, è possibile che si verifichino conflitti nel file di snapshot del modello. Se entrambe le modifiche non sono correlate, l'unione è semplice e le due migrazioni possono coesistere. Ad esempio, è possibile che si verifichi un conflitto di merge nella configurazione del tipo di entità cliente simile al seguente:

<<<<<<< Mine
b.Property<bool>("Deactivated");
=======
b.Property<int>("LoyaltyPoints");
>>>>>>> Theirs

Poiché entrambe queste proprietà devono esistere nel modello finale, completare l'unione aggiungendo entrambe le proprietà. In molti casi, il sistema di controllo della versione può unire automaticamente tali modifiche.

b.Property<bool>("Deactivated");
b.Property<int>("LoyaltyPoints");

In questi casi, la migrazione e la migrazione del compagno di squadra sono indipendenti l'uno dall'altro. Poiché una di esse potrebbe essere applicata per prima, non è necessario apportare modifiche aggiuntive alla migrazione prima di condividerla con il team.

Risoluzione dei conflitti

In alcuni casi si verifica un vero conflitto durante l'unione del modello di snapshot del modello. Ad esempio, l'utente e il compagno di squadra possono aver rinominato la stessa proprietà.

<<<<<<< Mine
b.Property<string>("Username");
=======
b.Property<string>("Alias");
>>>>>>> Theirs

Se si verifica questo tipo di conflitto, risolverlo ricreando la migrazione. Segui questi passaggi:

  1. Interrompere l'unione e il rollback nella directory di lavoro prima dell'unione
  2. Rimuovere la migrazione (ma mantenere le modifiche del modello)
  3. Unire le modifiche del compagno di squadra nella directory di lavoro
  4. Riaggiungere la migrazione

Dopo questa operazione, le due migrazioni possono essere applicate nell'ordine corretto. La migrazione viene applicata per prima, ridenominazione della colonna in Alias, successivamente la migrazione lo rinomina in Nome utente.

La migrazione può essere condivisa in modo sicuro con il resto del team.