2014-01-27 3 views
10

Желаемый результат:Entity Framework 6 Model First Migration

Используйте модель первого подхода с Entity Framework и позволяют изменения в развернутом базы данных/модели, которая будет выполняться автоматически на основе изменений в модели. Автоматическая генерация сценариев разной схемы для обеспечения плавной миграции.

Есть ли способ выполнить миграции в модели EF6? Я могу видеть первые темы миграции по всему тексту, но ничего особенного в модели First.

Опции я видел до сих пор:

  • поколения базы данных блок питания (кажется устаревшей)
  • каким-то образом преобразовать в код, а затем использовать миграции (не желательно, так как я хотел бы иметь визуальный конструктор)
  • как-то скопируйте обратно на первые миграции кода (http://blog.amusedia.com/2012/08/entity-framework-migration-with-model.html: это для EF5, получена ошибка, которая не может запускать миграции на модели First)
  • некоторые сторонние инструменты?

ответ

11

Насколько я знаю, до сих пор нет автоматической миграции для модели структуры Entity.

Наш подход:

  1. Создать свежую базу данных из модели.
  2. Создайте скрипт diff, чтобы перенести старую базу данных на новую.
  3. Убедитесь, что этот сценарий diff действительно правильный. Всегда проверяйте, что создает инструмент автоматизации.

Мы сначала использовали Open DB diff для нашей первой миграции. После этого мы перешли на Redgate's SQL compare, потому что он обеспечил более надежные миграции. В нашем опыте DbDiff выпустил много ненужного SQL, потому что он беспокоится о том, в каком порядке находятся столбцы, и имеет некоторые другие проблемы, такие как внешние ключи, которые постоянно отбрасываются и повторно добавляются. Кроме того, он все еще отлично справлялся с работой, но нам пришлось много раз проверять его сгенерированный SQL.

+0

Мы закончили с этим подходом так, как это имеет смысл. У нас есть база данных разработки на локальном ПК, где вы можете делать все, что захотите, а затем распространять изменения в тестовой базе данных, а затем на производство. Рабочий процесс, который вы описали, прекрасно подходит для этой последовательности и до сих пор выглядит очень хорошим решением. Пометка как ответ на этот момент. – Levent

Смежные вопросы