Не удается удалить миграцию базы данных с помощью Ef Core - PullRequest
0 голосов
/ 29 марта 2020

Ну, я пытаюсь отменить миграцию базы данных, просто добавив столбец, см .:

 public partial class CreateColumnTypeCamera : Migration
    {
        protected override void Up(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.AddColumn<string>(
                name: "type",
                table: "CAMERA",
                type: "varchar",
                nullable: false,
                defaultValue: "");
        }

        protected override void Down(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.DropColumn(
                name: "type",
                table: "CAMERA");
        }
    }

После выполнения dotnet ef database update все работает нормально, и моя база данных обновляется. Но я хочу отменить его, поэтому я попытался dotnet ef database update CreateColumnTypeCamera:

[ronaldo@localhost WebApi]$ dotnet ef database update CreateColumnTypeCamera
Done.

Как вы можете видеть, я получил "Готово", но ничего не возвращено, столбец не был отброшен. Если я пытаюсь удалить свою миграцию, я получаю сообщение об ошибке:

[ronaldo@localhost WebApi]$ dotnet ef migrations remove
The migration '20200329134024_CreateColumnTypeCamera' has already been applied to the database. Revert it and try again. If the migration has been applied to other databases, consider reverting its changes using a new migration.

Редактировать 1:

Я применил команду «update» к «LastGoodMigration» вместо моего плохого миграция, и все работает отлично. Но ошибка в удалении продолжения, поэтому я заметил, что из-за этой строки:

 if (Database.ProviderName != "Microsoft.EntityFrameworkCore.InMemory")
      {
        Database.Migrate();
      }

Есть ли способ исправить это? Если я попытаюсь применить «ef remove» к этой строке, я получу ошибку, показанную выше.

1 Ответ

0 голосов
/ 29 марта 2020

go в базу данных, таблицу EF_migrations и удалите миграцию с указанием c id (строка таблицы), затем вы можете удалить файлы из папки миграции. Не забудьте вручную обновить таблицы, на которые влияет эта миграция.

...