Как создать миграцию для существующей базы данных в EntityFramework 4.3? - PullRequest
7 голосов
/ 14 февраля 2012

, поэтому я хочу начать с миграций EntityFramework 4.3.Я хотел знать, могу ли я преобразовать существующую базу данных в базу данных с включенной миграцией, и чтобы EF предполагал, что только изменения с тех пор должны рассматриваться как миграции.

Ответы [ 3 ]

9 голосов
/ 18 февраля 2012

Хороший обзор этого опубликован здесь: http://thedatafarm.com/data-access/using-ef-4-3-code-first-migrations-with-an-existing-database/

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

8 голосов
/ 14 февраля 2012

Похоже, что я искал Миграции на основе кода , которые активируются, когда я устанавливаю AutomaticMigrationsEnabled = false.Мои модели были сгенерированы из существующей базы данных.Чтобы активировать миграции, мне нужно было только включить миграцию (Enable-Migrations), создать новый файл миграции с помощью Add-Migration, очистить его (мои модели уже находятся в базе данных, поэтому я не хочу, чтобы EF пытался исоздать их) и развернуть это.Для развертывания я добавил в свой файл Global.asax следующее:

protected void Application_Start()
{
        var config= new Configuration();
        var migrator = new DbMigrator(config);
        migrator.Update();
}

Была создана новая таблица __MigrationHistory и в ней была создана новая запись миграции.Эта новая запись миграции содержала хэш моих моделей, поэтому теперь любые изменения в моих моделях могут быть записаны для меня в будущих миграциях с EF.

Для тестирования я создал другой файл миграции (Add-Migration), добавил новое свойство в модель, запустил Add-Migrations, который создал сценарий для нового поля, а затем развернул мое приложение.Миграция была выполнена, как и ожидалось.

0 голосов
/ 13 августа 2015

Add-Migration -IgnoreChanges

См. https://msdn.microsoft.com/en-us/data/dn579398.aspx

...