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:
- Anular a mesclagem e a reversão para o seu diretório de trabalho antes da mesclagem
- Remova sua migração (mas mantenha as alterações do seu modelo)
- Mesclar as alterações do seu colega de equipe no seu diretório de trabalho
- 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.