2012-07-26 6 views
0

У меня есть существующая версия DB с схемой и данными. Я создал классы, используя утилиту microsoft (классы CodeFirst). Затем я включил миграцию.EF Migrations - существующая БД, но вы хотите развернуть с нуля

Теперь я озадачен поведением -IgnoreChanges. Если в исходной миграции нет логики Up() и Down(), что произойдет, когда я развернусь в prod db?

EF просто игнорирует все миграции и просто строит с нуля непосредственно из модели?

Если я не помещаю -IgnoreChanges, все логики Up() и Down() есть. Но при обновлении-базе данных он выдает исключение из таблицы с тем же именем, которое уже существует.

Я использую EF 5 RC.

ответ

1

IgnoreChanges предназначен для сценариев, в которых у вас есть существующее приложение (в dev и prod), и вы хотите начать использовать миграции. IgnoreChanges будет simplify adding initial migration существующей базе данных. Если вы находитесь в сценарии, где нет производственной базы данных, вы не можете использовать Игнорировать изменения.

Простой вариант для вашего случая - создание сущностей из существующей базы данных и продолжение работы над другой базой данных, созданной путем миграции из этих объектов, поскольку для всех этих объектов требуется создание таблицы для всех этих объектов в методе Up (и метод Down).