web-dev-qa-db-fra.com

Comment annuler la dernière commande Add-Migration?

J'ai créé une migration à l'aide de la commande Add-Migration, mais j'aimerais changer le nom de cette migration. Comment puis-je annuler la commande de migration afin de pouvoir la régénérer sous le nouveau nom souhaité?

Est-ce juste une question de supprimer les fichiers générés, ou cela pourrait être une mauvaise idée?

68
Miguel Angelo

Si vous n'avez pas utilisé Update-Database, vous pouvez simplement supprimer le fichier de migration. Si vous avez exécuté la mise à jour, vous devez la restaurer en utilisant Update-Database -TargetMigration "NameOfPreviousMigration", puis supprimer le fichier de migration.

Référence:

http://elegantcode.com/2012/04/12/entity-framework-migrations-tips/

106
Colin

Si vous n'avez pas encore exécuté la migration avec Update-Database, vous pouvez réexécuter Add-Migration avec le même nom (vous devrez peut-être utiliser -Force) pour réexécuter l'échafaudage. Ceci est noté dans le résultat de la commande Add-Migration.

11
Adrian

Avec EntityFrameworkCore 2.0 vient l’instantané du modèle. Vous devrez exécuter la commande remove migration pour mettre à jour l'instantané du modèle. J'ai lu qu'EF Core reconnaîtrait toute mise à jour et inverserait l'instantané pour vous si vous supprimiez manuellement la migration, mais cela n'a pas fonctionné pour moi.

https://docs.Microsoft.com/en-us/aspnet/core/data/ef-mvc/migrations

https://docs.Microsoft.com/en-us/ef/core/miscellaneous/cli/dotnet#dotnet-ef-migrations-remove

2
Ben

Il suffit d'utiliser la commande

Remove-migration

Cela supprimera la dernière migration ajoutée et la mise à jour du cliché. Cela n'affectera pas la base de données, vous devez donc restaurer la base de données en premier lieu.

2
Tomasz Maj

Mettez à jour votre dernière migration parfaite via cette commande:

Update-Database –TargetMigration
1
Abdus Salam Azad

Pour ajouter à la réponse de @Ben, lorsque vous utilisez la variété de commandes dotnet ef, il s'agit de la commande remove dont vous avez besoin: 

dotnet ef migrations remove

Ce qui supprimera votre dernière migration et mettra à jour l'instantané du modèle.

0
VME