2016-02-11 2 views
0

Используя Entity Framework 6, с базой данных SQL Server и первым переносом кода, у меня есть настройки и запуск миграции «счастливо», однако я обнаружил, что каждый раз, когда я отправляюсь добавлять другую миграцию, я получить следующее сообщение об ошибке первого выключения:Entity Framework всегда имеет ожидающую миграцию

Невозможно создать явную миграцию, поскольку следующие явные миграции находятся на рассмотрении: [201602090629398_Initial, 201602090638322_FixSitePageColumns, 201602110313468_RemoveRequiredTemplateId]. Применить ожидающие явные миграции, прежде чем пытаться создать новые явные миграции.»

Если я бег update-database -force он жалуется (естественно), что сценарий не удается из-за уже будучи применены. Странное сочетанием doign это снова, а затем в add-migration работы, и я могу продолжать обновление до последней миграции.

список «ожидающих» миграций также растет с каждым addded миграции с течением времени.

Что может вызвать это «ожидание» состояние, когда миграция Я уже подтвердил, что в базе данных уже есть b обновляется, миграция существует в __MigrationHistory, и программа работает счастливо.

EDIT

Я также просто запустить get-migrations и следующий возвращаются:

PM> Get-Миграция Извлечения миграций, которые были применены к целевой базе данных. 201602110313468_RemoveRequiredTemplateId 201602110311536_RemoveRequiredTemplateId 201602090638322_FixSitePageColumns 201602090629398_Initial

Странная вещь здесь (возможно, красная сельдь) является то, что 201602110311536_RemoveRequiredTemplateId не миграция в моем проекте, я думаю, что это, возможно, был один, который я создал, а затем удаляется, я никогда не косвенно применял его к базе данных, но он находится в таблице __MigrationHistory.

+0

Переименуйте существующую базу данных и создайте пустой, используя то же имя. Затем вызовите 'update-database'. Он должен запускать все миграции. Теперь добавьте и примените новые миграции и скажите мне, сохраняется ли проблема. –

+0

Хм хорошо, что в прошлый раз, когда я сделал «силовое» обновление и добавленную миграцию таким образом, что это заработало, похоже, оно исправлено, поэтому просто сделал Add-Migration для нового изменения (и, готовясь попробовать ваше предложение), проблема не возникла. Я попробую то, что вы предложили, если это произойдет снова, спасибо. –

ответ

-1

Удалите запись для removerequiredtemplateid из таблицы базы данных миграции и повторите процедуру миграции.

Необязательно удалите таблицу в целом, удалите все свои миграции, перезапустите enable-migrations, создайте новую начальную миграцию и снова запустите базу данных обновлений (в основном, создайте новый старт).

Не забудьте сделать необходимые резервные копии заранее.

+0

Downvoter: почему downvote? Пожалуйста, предоставьте альтернативное решение или, по крайней мере, подумайте о том, чтобы опубликовать ваши причины для downvoting ... –

Смежные вопросы