Migrações em ambientes de equipe

Ao trabalhar com migrações em ambientes de equipe, preste muita atenção no arquivo de instantâneos do modelo. Esse arquivo pode informar se a migração do seu colega de equipe se mescla corretamente com a sua ou se você precisa resolver um conflito recriando sua migração antes de compartilhá-la.

Mesclagem

Ao mesclar as migrações de seus colegas de equipe, você poderá ter conflitos no arquivo de instantâneos do modelo. Se nenhuma das duas alterações estiverem relacionadas, a mesclagem será trivial e as duas migrações poderão coexistir. Por exemplo, você pode ter um conflito de mesclagem na configuração de tipo de entidade do cliente com esta aparência:

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

Como ambas as propriedades precisam existir no modelo final, conclua a mesclagem adicionando ambas as propriedades. Em muitos casos, seu sistema de controle de versão pode mesclar automaticamente essas alterações para você.

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

Nesses casos, sua migração e a migração do seu colega de equipe são independentes uma da outra. Como qualquer um deles pode ser aplicado primeiro, você não precisa fazer nenhuma alteração adicional na sua migração antes de compartilhá-la com sua equipe.

Resolução de conflitos

Às vezes, você encontra um verdadeiro conflito ao mesclar o modelo de instantâneo. Por exemplo, você e seu colega de equipe podem ter renomeado a mesma propriedade.

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

Se você encontrar esse tipo de conflito, resolva-o recriando sua migração. Siga as etapas a seguir:

  1. Anular a mesclagem e a reversão para o seu diretório de trabalho antes da mesclagem
  2. Remova sua migração (mas mantenha as alterações do seu modelo)
  3. Mesclar as alterações do seu colega de equipe no seu diretório de trabalho
  4. Adicionar sua migração novamente

Depois de fazer isso, as duas migrações poderão ser aplicadas na ordem correta. A migração deles é aplicada primeiro, renomeando a coluna para Alias e, depois, sua migração a renomeia para Nome de usuário.

Sua migração pode ser seguramente compartilhada com o restante da equipe.