Получить сведения об ошибке автоматической миграции - PullRequest
0 голосов
/ 18 мая 2019

В моем проекте ASP.NET Entity Framework 6 я добавил новую модель и контроллер.У меня включена автоматическая миграция, но разрешена потеря данных.

Когда я запустил приложение после этих изменений, новая таблица фактически была создана в БД, но приложение сообщило мне:

Автоматическая миграция не применялась, поскольку это привело бы к потере данных

Без каких-либо других подробностей.Как читалось в других вопросах, я пытался выдать:

Database-Update -Script

, чтобы получить «различия», но ничего не произошло, просто сообщение об ошибке.Я действительно не хочу форсировать обновление, если не уверен, что оно собирается делать.

Что мне делать, чтобы получить содержимое текущей миграции?Я пытался заглянуть в таблицу dbo .__ MigrationHistory, но поле Model содержит двоичные данные.

UPDATE

Мне удалось декодировать поле Model, используя этот метод, нофайл edmx содержит только всю диаграмму базы данных, а не фактические команды, которые будет выполнять миграция.

Более того, даже если добавить флаг -Verbose, как предложено самим инструментом:

PM> Update-Database -Verbose
Using StartUp project 'MyProject'.
Using NuGet project 'MyProject'.
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.

Не отображаются операторы SQL ...

1 Ответ

1 голос
/ 18 мая 2019

Это сообщение отображается потому, что вы, вероятно, внесли некоторые изменения в свою модель, что привело к команде DROP (например, удаление свойства).

Чтобы увидеть сценарий для этой конкретной миграции, то есть обновление между последней миграцией и предыдущей, вы можете использовать следующую команду:

Update-Database -Script -SourceMigration: <migrationBeforeTheLastOne> -TargetMigration: <lastMigration>

как указано в ответе ChW .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...