J'ai mué mes migrations, j'ai utilisé IgnoreChanges
lors de la migration initiale, mais je souhaite maintenant supprimer toutes mes migrations et commencer par une migration initiale avec toute la logique.
Lorsque je supprime les migrations dans le dossier et que j'essaie d' Add-Migration
il ne génère pas un fichier complet (il est vide, car je n'ai apporté aucune modification depuis ma dernière migration, mais maintenant supprimée).
Existe-t-il une commande Disable-Migrations afin de pouvoir réexécuter Enable-Migrations
?
Tu dois :
__MigrationHistory
dans votre base de données (peut être sous les tables système); ensuite Exécutez la commande suivante dans la console du gestionnaire de packages:
Enable-Migrations -EnableAutomaticMigrations -Force
Utiliser avec ou sans -EnableAutomaticMigrations
Et enfin, vous pouvez lancer:
Add-Migration Initial
Le problème: Vous avez mal géré vos migrations et vous souhaitez le réinitialiser sans supprimer vos tables existantes.
Le problème: vous ne pouvez pas réinitialiser les migrations avec des tables existantes dans la base de données car EF souhaite créer les tables à partir de rien.
Que faire:
Supprimez les migrations existantes de la table Migrations_History.
Supprimez les migrations existantes du dossier Migrations.
Exécutez add-migration Reset. Cela créera une migration dans votre dossier de migration incluant la création des tables (mais ne l'exécutera pas pour éviter une erreur.)
Vous devez maintenant créer la première ligne dans la table MigrationHistory afin que EF ait un instantané de l'état actuel. EF le fera si vous appliquez une migration. Cependant, vous ne pouvez pas appliquer la migration que vous venez de faire car les tables existent déjà dans votre base de données. Allez donc dans Migration et commentez tout le code dans la méthode "Up".
Maintenant, lancez update-database. Il appliquera la migration (sans changer réellement la base de données) et créera une ligne d'instantané dans MigrationHistory.
Vous avez maintenant réinitialisé vos migrations et vous pouvez continuer avec des migrations normales.