How to unapply a migration in ASP.NET Core with EF Core

remove-migration command
remove-migration entity framework
revert migration ef core
ef core automatic migrations
ef core migrations existing database
the migration has already been applied to the database revert it and try again
entity framework rollback migration
update-database specific migration

When I run PM> Remove-Migration -context BloggingContext in VS2015 with an ASP.NET Core project using EF Core I get the following error:

System.InvalidOperationException: The migration '20160703192724_MyFirstMigration' has already been applied to the database. Unapply it and try again. If the migration has been applied to other databases, consider reverting its changes using a new migration.    at Microsoft.EntityFrameworkCore.Migrations.Design.MigrationsScaffolder.RemoveMigration(String projectDir, String rootNamespace, Boolean force) 
    at Microsoft.EntityFrameworkCore.Design.MigrationsOperations.RemoveMigration(String contextType, Boolean force) 
    at Microsoft.EntityFrameworkCore.Tools.Cli.MigrationsRemoveCommand.<>c__DisplayClass0_0.<Configure>b__0() 
    at Microsoft.Extensions.CommandLineUtils.CommandLineApplication.Execute(String[] args) 
    at Microsoft.EntityFrameworkCore.Tools.Cli.Program.Main(String[] args) 
 The migration '20160703192724_MyFirstMigration' has already been applied to the database. Unapply it and try again. If the migration has been applied to other databases, consider reverting its changes using a new migration.

How can I unapply it? I'm using latest release of ASP.NET Core 1.0, EF Core, and VS2015 Update 3.

Use:

CLI

> dotnet ef database update <previous-migration-name>

Package Manager Console

PM> Update-Database <previous-migration-name>

Example:

PM> Update-Database MyInitialMigration

Then try to remove last migration.

Removing migration without database update doesn't work because you applied changes to database.

If using PMC, Try: PM> update-database 0 This will wipe the database and allow you to remove the Migration Snapshot on your Solution

How to unapply a migration in ASP.NET Core with EF Core, Sometimes this could cause data loss, so it is important to proceed with caution. In the dotnet CLI, this command is found in: dotnet ef migrations  When I run PM> Remove-Migration -context BloggingContext in VS2015 with an ASP.NET Core project using EF Core I get the following error: System.InvalidOperationException: The migration '20160703192724_MyFirstMigration' has already been applied to the database. Unapply it and try again.

To completely remove all migrations and start all over again, do the following:

dotnet ef database update 0
dotnet ef migrations remove

Migrations, [Command Line]; dotnet ef migrations remove; [Package Manager Console]; remove-migration. You will use this command to remove the latest migration. The EF Core Migrations feature solves this problem by enabling EF to update the database schema instead of creating a new database. To work with migrations, you can use the Package Manager Console (PMC) or the CLI. These tutorials show how to use CLI commands. Information about the PMC is at the end of this tutorial.

You can still use the Update-Database command.

Update-Database -Migration <migration name> -Context <context name>

However, judging by the name of your migration i'm assuming it's the first migration so that command may not work. You should be able to delete the entry from the __MigrationHistory table in your database and then run the Remove-Migration command again. You could also delete the migration file and just start again.

Entity Framework Core 2.1: Tools – Remove-Migration – Felipe , Migration is a way to keep the database schema in sync with the EF Core model you can execute in NuGet Package Manager Console or in dotnet Command Line Remove-migration, Remove, Removes the last migration snapshot. Useful Resources; Fastest Way to Insert using EF Extensions · Learn C#, MVC, ASP. Example code tested with ASP.NET Core 3.1. This is a super quick example of how to automatically migrate database changes from code in ASP.NET Core using Entity Framework Core from the Startup.cs file.

To revert the last applied migration you should (package manager console commands):

  1. Revert migration from database: PM> Update-Database <prior-migration-name>
  2. Remove migration file from project (or it will be reapplied again on next step)
  3. Update model snapshot: PM> Remove-Migration

UPD: The second step seems to be not required in latest versions of Visual Studio (2017).

Migrations, Anyway, I wanted to remove the latest migration in my ASP.Net Core / EF Core test project (AddShamesCreatedColumns), so I went back to the  Entity Framework Core. Entity Framework is Microsoft’s ORM (Object-Relational Mapper) and EF Core is a lightweight, cross-platform version of EF, useful for ASP .NET Core web app developers. This article isn’t going to try and convince you of the benefits of using an ORM.

Simply you can target a Migration by value

 Update-Database -Migration:0

Then go ahead and remove it

 Remove-Migration

Migration in Entity Framework Core, Remove the individual migration files in your project's Migrations folder; Enable-​Migrations in Package Manager Console; Add-migration Initial in  So far, we have created one Asp.Net Core MVC application and installed some required Entity Framework Core packages which are required for Code First migration or we can say, these will help us to use Entity Framework Core functionality for working with SQL Server. So,

Remove-Migration runs the application · Issue #9622 · dotnet/efcore , NET Core” in which he used “migrating a database” as an example of the toils and joys of being an author, but Andrew has the harder job with ASP. you keep everything EF Core added and then alter it, or remove EF Core  The migrations feature in EF Core provides a way to incrementally update the database schema to keep it in sync with the application's data model while preserving existing data in the database. Migrations includes command-line tools and APIs that help with the following tasks: Create a migration. Generate code that can update the database to sync it with a set of model changes.

Resetting Entity Framework Migrations to a clean Slate, To remove the V1 migration means, we are reverting back to Initial . Hence 2. 3​. dotnet ef database update "initial" //Dot net cli  Migration in Entity Framework Core. Migration is a way to keep the database schema in sync with the EF Core model by preserving data. As per the above figure, EF Core API builds the EF Core model from the domain (entity) classes and EF Core migrations will create or update the database schema based on the EF Core model.

Handling Entity Framework Core database migrations in production , Migrations are enabled by default in EF Core. They are managed by executing commands. If you have Visual Studio, you can use the Package Manager Console (PMC) to manage migrations. Alternatively, you can use a command line tool to execute Entity Framework CLI commands to create a migration.

Comments
  • try adding -force at the end
  • The article learnentityframeworkcore.com/migrations#reversing-a-migration describes the steps. Thanks @drewskis for the link
  • Thanks @MichaelFreidgeim
  • I'm still getting the same error. I first used dotnet ef database update MyFirstMigration --context BloggingContext that worked successfully. Then I ran dotnet ef migrations remove --context BloggingContext that gave me the same error message as in my post
  • You'll need to update to the migration before MyFirstMigration. If that is the 1st migration (as the name implies) then you can use dotnet ef database update 0 to revert(unapply) all migrations from the database. You should then be able to run dotnet ef migrations remove.
  • Also it's worth noting that you should only use the name of the migration, excluding the date-prefix
  • Call dotnet ef migrations remove after this
  • Your second statement: "Then try to remove last migration" is not complete in this answer, please say exactly what you mean. remove the migration file? execute a command? ...
  • But you don't want to remove all migrations. For example, you want to keep the default migration VS creates for identity (User Accounts) under Data\Migrations folder.
  • It's good to know dotnet ef database update 0, but running dotnet ef migrations remove afterwards will remove default migration for Identity, which might not be desired.
  • Thanks for the tip on dotnet ef database update 0! I hadn't seen this mentioned anywhere...
  • @nam "But you don't want to remove all migrations." But some of us do. Don't assume what I want :)