Comment supprimer une migration dans ASP.NET Core avec EF Core

Lorsque je lance PM> Remove-Migration -context BloggingContext dans VS2015 avec un projet ASP.NET Core utilisant EF Core, j’obtiens l’erreur suivante:

 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(Ssortingng projectDir, Ssortingng rootNamespace, Boolean force) at Microsoft.EntityFrameworkCore.Design.MigrationsOperations.RemoveMigration(Ssortingng contextType, Boolean force) at Microsoft.EntityFrameworkCore.Tools.Cli.MigrationsRemoveCommand.c__DisplayClass0_0.b__0() at Microsoft.Extensions.CommandLineUtils.CommandLineApplication.Execute(Ssortingng[] args) at Microsoft.EntityFrameworkCore.Tools.Cli.Program.Main(Ssortingng[] 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. 

Comment puis-je le désinstaller? J’utilise la dernière version d’ASP.NET Core 1.0, EF Core et VS2015 Update 3.

Utilisez la dotnet ef database update

Ensuite, essayez de supprimer la dernière migration.

La suppression de la migration sans mise à jour de la firebase database ne fonctionne pas car vous avez appliqué des modifications à la firebase database.

Pour supprimer complètement toutes les migrations et recommencer à zéro, procédez comme suit:

 dotnet ef database update 0 dotnet ef migrations remove 

Vous pouvez toujours utiliser la commande Update-Database .

 Update-Database -Migration  -Context  

Cependant, à en juger par le nom de votre migration, je suppose que c’est la première migration pour que la commande ne fonctionne pas. Vous devriez pouvoir supprimer l’entrée de la table __MigrationHistory de votre firebase database, puis exécuter à nouveau la commande Remove-Migration . Vous pouvez également supprimer le fichier de migration et recommencer.

Pour “ne pas appliquer” la migration la plus récente (ou la plus récente) après son application à la firebase database:

  1. Ouvrez l’explorateur d’objects SQL Server (Affichage -> “Explorateur d’objects SQL Server”)
  2. Accédez à la firebase database liée à votre projet en développant les petits sortingangles sur le côté.
  3. Développez “Tables”
  4. Recherchez la table nommée “dbo._EFMigrationsHistory”.
  5. Faites un clic droit dessus et sélectionnez “Afficher les données” pour voir les entrées de la table dans Visual Studio.
  6. Supprimez la ligne correspondant à votre migration que vous souhaitez supprimer (Dites “oui” à l’avertissement, si vous y êtes invité).
  7. Exécutez à nouveau “dotnet ef migrations remove” dans la fenêtre de commande du répertoire contenant le fichier project.json. Vous pouvez également exécuter la commande “Remove-Migration” dans la console du gestionnaire de packages.

J’espère que cela aide et est applicable à toute migration dans le projet … Je l’ai testé uniquement sur la migration la plus récente …

Heureux codage!

Dans la console du gestionnaire de packages:

Update-Database Your_Migration_You_Want_To_Revert_To

Vous trouverez plus d’options et d’explications sur la manière de restaurer les migrations ici

Vous pouvez simplement cibler une migration par valeur

  Update-Database -Migration:0 

Alors allez-y et retirez-le

  Remove-Migration 

Pour supprimer la dernière migration que vous avez appliquée en fonction des documents, utilisez la commande:

 dotnet ef migrations remove 

Cette commande doit être exécutée à partir de l’invite de commande du développeur ( comment ouvrir l’invite de commande ) dans le répertoire de votre solution.

Par exemple, si votre application est à l’intérieur du nom “Application” et se trouve dans le dossier c: \ Projects. Ensuite, votre chemin devrait être:

 C:\Projects\Application 

Pour annuler la dernière migration appliquée, vous devez (commandes de la console du gestionnaire de packages):

  1. Rétablir la migration de la firebase database: PM> Update-Database
  2. Supprimer le fichier de migration du projet (ou il sera à nouveau appliqué à l’étape suivante)
  3. Mise à jour de l’instantané du modèle: PM> Remove-Migration

Pour supprimer une migration dans EF Core 1.0, utilisez la commande:

mise à jour de la firebase database dotnet ef {nom_migration}

Utilisez le nom de migration de la migration jusqu’à lequel vous souhaitez conserver vos modifications. La liste des noms de la migration peut être trouvée en utilisant:

dotnet ef liste des migrations

1.find la table “dbo._EFMigrationsHistory”, puis supprimez l’enregistrement de migration que vous souhaitez supprimer. 2. lancez “remove-migration” dans PM (console du gestionnaire de paquets). Travaille pour moi.