Я только что начал тестировать миграции в нескольких различных командных сценариях, чтобы убедиться, что миграции будут работать должным образом с git / несколькими пользователями / несколькими ветвями. Но я сразу столкнулся с проблемой. В ветке 1 я добавил свою первоначальную миграцию (в существующем проекте со 165 объектами), удалив код в Up/Down (просто использует моментальный снимок модели), затем обновил на основе данных (отлично создает таблицу __MigrationHistory). Я объединяю это с веткой 2 (АБСОЛЮТНО такая же модель — точная копия ветки 1), запускаю update-database с моими недавно объединенными миграциями, и он говорит, что невозможно обновить базу данных, чтобы она соответствовала текущей модели, потому что есть ожидающие изменения. Ожидаемых изменений нет, обе модели абсолютно одинаковы. Есть ли что-то, что мне здесь не хватает? Я думал, что столкнусь с этой проблемой только после того, как миграция выйдет из строя (слияние, изменение модели от разных пользователей).
Итак, почему я должен выполнять начальную миграцию с добавлением как на ветке 1, так и на ветке 2? Они объединены и абсолютно одинаковы.
Примечания: EF 5 (технически 4.4) с .NET 4.0. DevArt dotConnect для Oracle v 8.1.55.0
РЕДАКТИРОВАТЬ: я прочитал этот пост, но я не на разных платформах, я на одном компьютере - просто разные ветки .
add-migration
на ветке 2 после слияния, добавляется ли что-нибудь к методуUp()
? Отличаются ли метаданные в файле кода/ресурса? - person Anders Abel   schedule 24.12.2013Up()
ничего не добавляется и отличаются только метаданные, я понятия не имею, что делать. Я думал о написании инструмента, который может десериализовать метаданные из кода, а также загружать метаданные из БД и сравнивать их. Если бы у меня было больше времени... - person Anders Abel   schedule 24.12.2013