Миграция в командных средах

При работе с миграциями в средах групп Обратите особое внимание на файл моментальных снимков модели. Этот файл может сообщить вам о том, что миграция вашей коллеги объединяется с вами, или если необходимо устранить конфликт путем повторного создания миграции перед предоставлением общего доступа к ней.

слияние

При слиянии миграций из ваших коллег может возникнуть конфликт в файле моментального снимка модели. Если оба изменения не связаны, объединение является тривиальным и две миграции могут сосуществовать. Например, вы можете получить конфликт слияния в конфигурации типа сущности Customer, которая выглядит следующим образом:

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

Так как оба свойства должны существовать в окончательной модели, завершите слияние, добавив оба свойства. Во многих случаях система управления версиями может автоматически объединять такие изменения.

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

В таких случаях миграция и миграция коллег не зависят друг от друга. Так как одна из них может быть применена первыми, вам не нужно вносить дополнительные изменения в процесс миграции, прежде чем поделиться им с вашей командой.

Разрешение конфликтов

Иногда возникает истинный конфликт при объединении модели моментальных снимков модели. Например, вы и ваши коллеги могут переименовать одно и то же свойство.

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

Если вы столкнулись с этим видом конфликта, устраните его, повторно создав миграцию. Выполните следующие действия.

  1. Прервать слияние и откат к рабочему каталогу перед слиянием
  2. Удалите миграцию (но не задерживайте изменения модели).
  3. Объединение изменений, внесенных коллегами, в рабочий каталог
  4. Повторное добавление миграции

После этого две миграции можно применить в правильном порядке. Сначала применяется перенос, переименование столбца в псевдоним, после чего миграция переименовывается в username.

Миграцию можно безопасно использовать совместно с остальными участниками группы.