Migrações em ambientes de equipe

Ao trabalhar com migrações em ambientes de equipe, preste atenção extra ao arquivo de instantâneo do modelo. Esse arquivo pode informar se a migração do seu companheiro de equipe se mescla de forma limpa com a sua ou se você precisa resolver um conflito recriando sua migração antes de compartilhá-la.

Mesclando

Ao mesclar migrações de seus colegas de equipe, você poderá obter conflitos no arquivo de instantâneo do modelo. Se ambas as alterações não estiverem relacionadas, a mesclagem será trivial e as duas migrações poderão coexistir. Por exemplo, você pode obter 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, a migração e a migração do seu companheiro de equipe são independentes umas das outras. Como qualquer um deles pode ser aplicado primeiro, você não precisa fazer nenhuma alteração adicional na 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 do modelo. Por exemplo, você e seu companheiro 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 estas etapas:

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

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

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