EF Core Migrations - как изменить предыдущие миграции? - PullRequest
0 голосов
/ 10 июля 2019

У меня есть вопрос о редактировании файлов миграции в EF Core.

Пример. Я создал 3 таблицы, используя отдельные миграции для каждой: AddTable1, AddTable2, AddTable3.

После этого через несколько дней я решил изменить тип столбца status в Table1 на int, а не string.

После обновления файла миграции AddTable1, удаливбаза данных и выполнение команды update-database для столбца по-прежнему определены с типом string.

Я заметил, что все файлы .Designer.cs все еще используют тип string для столбца status, несмотря на мое редактированиеTable1 файл миграции.

Я скопировал содержимое файла AppDbContextModelSnapshot.cs и вручную обновил все файлы .Designer.cs для всех миграций ( note : имя метода в источнике и .Designer.cs файлы разные).

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

Мой вопрос: есть ли команда, которая будет делать то, что я сделал - «сбросить» файлы «.Designer.cs»?

Если нет, то как его сделать?:)

1 Ответ

1 голос
/ 11 июля 2019

Думайте о миграции как о коммите Git. Вы не переписываете предыдущие коммиты после того, как поделились ими с другими членами команды (или в нашем случае применили миграцию к базе данных). Вместо этого вы создаете новые миграции с дополнительными изменениями.

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

Remove-Migration
Add-Migration FixedUpMigration

См. EF Core Migrations документы для основного использования.

...