0

Rollingback à une migration spécifique (C) signifie rollingback toutes les migrations dans l'intervalle (G, F, D, E). Est-ce que c'est un moyen où nous pouvons annuler seulement la migration de restauration c et ne pas affecter les autres migrations.Rollback à une migration spécifique uniquement dans Asp.net

J'ai également examiné d'autres questions visant à ce sujet, mais à force obtenir un indice de ce mécanisme.

EF Migrations: Rollback last applied migration?

Répondre

0

Il ne dépend des changements, mais si les changements dans la migration C sont indépendants de D - G change, vous pouvez le faire:

  1. Ajouter une nouvelle migration H.
  2. Copie le code de H.
  3. update-database
  4. Down() le code de C au code Up() de H.
  5. Copiez le code Up() de C à Down()

Une autre option consiste à annuler simplement les changements de modèle dans le code et la prochaine migration va les inverser.

Si les bases de données déployées ont toutes ces migrations vous pouvez le faire appliquer:

  1. Rollback à la migration B (update-database -TargetMigration B).
  2. Supprimez les migrations C - G dans le code et dans la table __MigrationHistory.
  3. Ajouter une nouvelle migration C. Cela inclura désormais toutes les modifications pour actualiser la base de données (anciennement D - G).
  4. update-database

L'essentiel à retenir est que les migrations se penchera sur la dernière migration de code pour un modèle qui comparent ensuite à ce que vos modèles de code sont maintenant. Pour plus d'informations, voir here.