EF 6 Code First Migration после удаления данных из таблицы __MigrationHistory - PullRequest
0 голосов
/ 05 сентября 2018

Я случайно удалил данные из таблицы __MigrationHistory и попытался перенести новые таблицы и изменения столбцов в db. В это время EF6 показывает мне ошибку

"There is already an object named 'xxxx' in the database.".

Я попробовал способ с помощью этой команды, и это не влияет на изменения столбцов таблицы.

Add-Migration MyMigration1 -IgnoreChanges
Update-database -Force

Есть много рекомендаций по этому поводу для воссоздания БД или другого. Но это может привести к потере данных в моей базе данных, которая содержит огромный объем проверенных данных, и я не могу потерять какие-либо данные. Как решить эту ошибку без потери каких-либо данных. Если кто-нибудь, пожалуйста ...

Обновление

Наконец-то я нашел решение, чтобы решить мою проблему. Я не уверен, что это предпочтительный способ решения подобных проблем, но он сработал для меня.

Я очистил данные из таблицы __MigrationHistory, попытался перенести новую базу данных и скопировал данные из __MigrationHistory новой базы данных в свою старую базу данных, затем установил значение AutomaticMigration true и запустил команду update-database, и проблема была решена.

1 Ответ

0 голосов
/ 05 сентября 2018

Я не уверен, что это хороший подход, чтобы исправить это, но у меня это сработало.

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

Я вижу проблему в том, что вам нужно заполнить еще два поля (в EF Core есть только два столбца), но я думаю, что вы можете получить их, например, с помощью SQL Profiler

...