155

По какой-то причине мои миграции, похоже, были перепутаны/повреждены/что угодно. Я нахожусь в точке, где я просто хочу начать все сначала, так что есть способ полностью отменить все миграции, стереть историю и удалить код миграции, чтобы я вернулся к квадрату?Entity Framework - Start Over - Undo/Rollback Все миграции

например) PM> Disable-Migrations или Rollback-Migrations

Я не хочу, чтобы «обновить» в оригинальной стадии миграции (то есть что-то вроде InitialSchema мишень), потому что я не могу найти его больше.

ответ

331

Вы можете откатиться к любой миграции с помощью:

Update-Database -TargetMigration:"MigrationName" 

Если вы хотите, чтобы откатить все миграции, которые можно использовать:

Update-Database -TargetMigration:0 

или эквивалент:

Update-Database -TargetMigration:$InitialDatabase 

В некоторых вы также можете удалить базу данных и все классы миграции.

+6

как обычно, ты лучший. – drzaus

+0

Ты спас меня от хлопот. Благодарю. –

+0

Хороший ответ! :) – Rushino

8

Чтобы быть понятным, если вы используете LocalDb, когда хотите начать с нуля, просто удалите базу данных через Проводник базы данных, а затем введите enable-migrations -force в консоли диспетчера пакетов. Не удаляйте базу данных через папку App_Data или у вас будет следующее: issue.

+2

Будьте осторожны при выполнении этого, так как он перезапишет ваши Migrations \ Configuration.cs без предупреждения! – cgatian

+0

Благодарим за предупреждение, что я немного потерял код первым путем через некоторое время, его приятно иметь весь ваш код в один раз, место, иметь исходное управление версиями для вашей базы данных как таковое, но я не видел никаких других больших преимущества и сначала переключиться на базу данных. Я использую Red Gate Sql Compare для отслеживания всех дельт. –

1

Для Entity Framework Core:

Update-Database -Migration:0 
Remove-Migration 

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

  • Нет связанных вопросов^_^