Я испортил свои миграции, я использовал IgnoreChanges
при начальной миграции, но теперь я хочу удалить все свои миграции и начать с начальной миграции со всей логикой.
Когда я удаляю миграции в папке и пытаюсь, и Add-Migration
она не генерирует полный файл (он пустой - потому что я не вносил никаких изменений со времени моей последней, но теперь удаленной миграции).
Есть ли какая - либо команда Disable-Migrations , чтобы я мог выполнить ее повторно Enable-Migrations
?
Ответы:
Тебе надо :
__MigrationHistory
таблицу в вашей базе данных (может быть в системных таблицах); затемВыполните следующую команду в консоли диспетчера пакетов:
Использовать с или без
-EnableAutomaticMigrations
И, наконец, вы можете запустить:
источник
Проблема: вы испортили свои миграции и хотели бы сбросить их, не удаляя существующие таблицы.
Проблема: Вы не можете сбросить миграции с существующими таблицами в базе данных, так как EF хочет создать таблицы с нуля.
Что делать:
Удалить существующие миграции из таблицы Migrations_History.
Удалите существующие миграции из папки миграции.
Запустите add -igration Reset. Это создаст миграцию в папке Migration, которая включает в себя создание таблиц (но она не будет запускаться, поэтому не будет возникать ошибка).
Теперь вам нужно создать начальную строку в таблице MigrationHistory, чтобы у EF был снимок текущего состояния. EF сделает это, если вы примените миграцию. Однако вы не можете применить перенесенную миграцию, поскольку таблицы уже существуют в вашей базе данных. Итак, перейдите в раздел «Миграция» и закомментируйте весь код внутри метода «Up».
Теперь запустите update-database. Он применяет миграцию (но фактически не изменяет базу данных) и создает строку снимка в MigrationHistory.
Теперь вы сбросили свои миграции и можете продолжить обычные миграции.
источник
Как насчет
в консоли диспетчера пакетов? Он должен сбросить все обновления до самого раннего состояния.
Ссылка: Code First Migrations - Миграция в конкретную версию (включая понижение версии)
источник
Чтобы это исправить, вам необходимо:
Удалите все файлы * .cs в папке миграции.
Удалить таблицу _MigrationHistory в базе данных
Бегать
Enable-Migrations -EnableAutomaticMigrations -Force
Бегать
Add-Migration Reset
Затем в
public partial class Reset : DbMigration
классе необходимо прокомментировать все существующие и текущие таблицы:Если вы пропустите этот бит все не получится, и вам придется начинать заново!
Update-Database -verbose
Это должно быть успешным, если вы сделали все правильно, и теперь вы можете продолжать как обычно.
источник
Учитывая, что это все еще проявляется, когда мы ищем EF в .NET Core, я опубликую свой ответ здесь (так как он часто преследует меня). Обратите внимание, что в версии EF 6 .NET есть некоторые тонкости (нет начальной команды, и вам нужно будет удалить файлы «Снимок»).
(Проверено в .NET Core 2.1)
Вот шаги:
_efmigrationhistory
таблицу.ApplicationDbContextSnapshot.cs
, и удалите их.Add-Migration InitialMigration
Обратите внимание: вы должны удалить ВСЕ файлы снимков . Я потратил бесчисленные часы, просто удаляя базу данных ... Это создаст пустую миграцию, если вы этого не сделаете.
Кроме того, в # 3 вы можете просто назвать свою миграцию как хотите.
Вот некоторые дополнительные ресурсы: asp.net CORE Миграции генерируются пустыми
Сбросить Entity Framework 7 миграций
источник
В EntityFramework 6, пожалуйста, попробуйте:
для того, чтобы обновить исходный файл миграции.
источник
В Entity Framework Core.
источник
Моя проблема оказалась в том, что я вручную удалил папку Migrations. Я сделал это, потому что хотел создать резервную копию содержимого, поэтому я просто перетащил папку из проекта. Позже я исправил проблему, вернув ее обратно (после создания резервной копии), затем удалив папку «Миграции», щелкнув ее правой кнопкой мыши в обозревателе решений и выбрав «Удалить» во всплывающем меню.
источник
В EF6
Add-Migration Initial
.источник
Удалить в
Migrations
папку, аClean
затемRebuild
проект. Это сработало для меня. Перед чисткой и перестройкой говорилось, что миграция уже существует, поскольку в кэшированной памяти она еще не удалена.источник
Этот метод не требует удаления
__MigrationHistory
таблицы, поэтому вам не нужно прикладывать руки к базе данных при развертывании.Add-Migration ResetMigrations
Up()
методе:источник
В Net Core 3.0:
Я не смог найти способ сбросить миграции .
Я также столкнулся с проблемами с нарушенной миграцией, и ответы, предоставленные здесь, не работали для меня. У меня есть веб-API .Net Core 3.0, и где-то в прошлом месяце я редактировал базу данных напрямую. Да, я сделал плохо, плохо.
Предлагаемые здесь стратегии привели к ряду ошибок в консоли диспетчера пакетов:
Конечно, я мог пропустить шаг или пропустить очистку правильных файлов, но я обнаружил, что есть способы убрать это без такой грубой силы:
Теперь, когда веб-API запускается с пустой базой данных, он правильно создает все таблицы и свойства, соответствующие моделям сущностей.
НТН!
источник
ОБНОВЛЕНИЕ 2020
ApplicationDbContext => Ваш контекст.
источник
источник