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?
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/
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.
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
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.
Mettez à jour votre dernière migration parfaite via cette commande:
Update-Database –TargetMigration
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.