Я только что установил Entity Framework Migrations, добавил свойство класса и дал EF Migrations вихрь.Получение начального сценария миграции объектов Entity Framework
Моя база данных разработки была быстро обновлена. Все идет нормально.
Теперь я хочу создать сценарий изменений для этого начального использования Миграции для производственной базы данных. Обратите внимание, что существовала уже существующая база данных, потому что я применил ее к существующему проекту.
Миграции я являюсь:
PM> Get-Migrations
Retrieving migrations that have been applied to the target database.
201204102238194_AutomaticMigration
201203310233324_InitialCreate
PM>
Я думал, что я мог бы получить дельту-скрипт, используя следующее:
Update-Database -SourceMigration:201203310233324_InitialCreate -TargetMigration:201204102238194_AutomaticMigration -script
Однако, это дает мне ошибку:
'201204102238194_AutomaticMigration' is not a valid migration. Explicit migrations must be used for both source and target when scripting the upgrade between them.
Просто чтобы посмотреть, что произойдет, я перевернул два параметра (обратная миграция) и получил скрипт, который я wou ld ожидает после добавления флага -force (новые столбцы сброшены).
Как я могу получить скрипт для этой первой миграции?
Как вы получили первоначальную миграцию? Ваша автоматическая миграция должна содержать создание сценария для всей базы данных, чего вы не хотите - выполнение такого скрипта в существующей базе данных приводит к многочисленным ошибкам. Можете ли вы попробовать [этот подход] (http://www.ladislavmrnka.com/2012/03/ef-4-3-migrations-and-existing-database) вместо этого? –
@Ladislav: Мне не нужен скрипт для всей базы данных, потому что моя вся (начальная) база данных уже находится в производстве. Я не могу понять, как перейти от первой базы данных, уже находящейся в производстве, до того, как я использовал Migrations, до моего самого первого обновления. Я уверен, что у Миграции есть моя первоначальная схема БД где-то там, потому что изменение параметров SourceMigration и TargetMigration вместе с * -force * создает скрипт для DROP моих новых столбцов. Я просто не могу заставить его перейти от исходной базы данных к первой новой итерации (добавьте несколько столбцов). –