仅在Asp.net

时间:2017-07-29 15:36:17

标签: c# asp.net visual-studio-2015 entity-framework-6 ef-migrations

回滚到特定迁移(C)意味着回滚其间的所有迁移(G,F,D,E)。它们是我们只能回滚回滚迁移c而不影响其他迁移的方式。

我还研究了针对这个主题的其他问题,但是得到了这种机制的暗示。

EF Migrations: Rollback last applied migration?

1 个答案:

答案 0 :(得分:0)

它确实取决于更改,但如果迁移C中的更改与D-G更改无关,则可以执行此操作:

  1. 添加新的迁移H.
  2. 将Down()代码从C复制到H(
  3. 的Up()代码
  4. 将Up()代码从C复制到H(
  5. 的Down()代码
  6. update-database
  7. 另一种选择是撤消代码中的模型更改,下一次迁移将反转它们。

    如果已部署的数据库都应用了这些迁移,则可以执行以下操作:

    1. 回滚到迁移B(update-database -TargetMigration B)。
    2. 删除代码和__MigrationHistory表中的迁移C - G.
    3. 添加新迁移C.现在将包含所有更改以使数据库保持最新状态(以前为D-G)。
    4. update-database
    5. 要记住的关键是迁移将查看模型的最后一次代码迁移,然后将其与您的代码模型现在进行比较。有关详细信息,请参阅here