Подтвердить что ты не робот

Использование первого кода инфраструктуры Entity Framework в проекте DVCS

Я всегда находил управление версиями немного проблемой, когда речь заходила о схемах базы данных.

Итак - я в настоящее время оцениваю First Entity Framework Code First Migrations, и до сих пор я действительно впечатлен.

Мой вопрос: есть ли у кого-нибудь опыт использования Migrations в команде с использованием DVCS?

Если разработчики, работающие в разных ветвях, создают свои собственные миграции, помогает ли инструмент "Update-Database" справиться с этим при объединении ветвей?

Я предполагаю, что может случиться, что новая Миграция появится в середине списка. Будет ли это тогда поднято, или он просто ищет "новые" миграции, чем предыдущие?

Я ценю, что команда должна быть осторожна, чтобы не создавать конфликтующие изменения схемы - это то, что мы можем управлять, но было бы полезно узнать, достаточно ли "Update-Database", чтобы определить "недостающие", миграция?

Спасибо, - Крис

4b9b3361

Ответ 1

Согласно сообщению блога, я мог бы найти по этой теме, похоже, что параллельная разработка, независимо от инструмента VCS, проблематична с текущее состояние миграции базы данных в EF. Кажется, что нет способа обработать сценарий из-за того, как он отслеживает состояние базы данных. Pawel предоставляет пример проекта на GitHub, чтобы отобразить эту проблему.

На самом деле вам может быть намного лучше использовать независимый инструмент для обработки миграции базы данных. Я использовал Migrator.NET с большим успехом, и он правильно обрабатывает изменения схемы параллельных разработчиков. Он также использует относительно низкотехнологичный метод отслеживания "версии" базы данных, который на удивление работает очень хорошо, пока вы и ваша команда решаете в тот день, когда никто никогда не коснется базы данных, кроме как через класс миграции (мы назвали этот день v1 базы данных).

Ответ 2

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

http://msdn.microsoft.com/en-us/data/dn481501.aspx

Ответ 3

Я не думаю, что это работает, и я не думаю, что там есть способ.

Подробнее см. этот пост в блоге.

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