仅在 Asp.net 中回滚到特定迁移
Posted
技术标签:
【中文标题】仅在 Asp.net 中回滚到特定迁移【英文标题】:Rollback to a specific migration only in Asp.net 【发布时间】:2018-01-05 13:22:44 【问题描述】:回滚到特定迁移(C)意味着回滚(G,F,D,E)之间的所有迁移。他们是一种方式,我们可以只回滚回滚迁移 c 而不会影响其他迁移。
我还查看了针对此主题的其他问题,但对这种机制有所了解。
EF Migrations: Rollback last applied migration?
【问题讨论】:
【参考方案1】:它确实取决于更改,但如果迁移 C 中的更改独立于 D - G 更改,您可以这样做:
-
添加新的迁移 H.
将 C 中的 Down() 代码复制到 H 的 Up() 代码中。
将 C 中的 Up() 代码复制到 H 的 Down() 代码中。
update-database
另一种选择是只撤消代码中的模型更改,下一次迁移将撤消它们。
如果部署的数据库都应用了这些迁移,您可以这样做:
-
回滚到迁移 B (
update-database -TargetMigration B
)。
在代码和 __MigrationHistory 表中删除迁移 C - G。
添加一个新的迁移 C。这将包括使数据库保持最新的所有更改(以前的 D - G)。
update-database
要记住的关键是,迁移将查看模型的最后一次代码迁移,然后将其与您现在的代码模型进行比较。欲了解更多信息,请参阅here。
【讨论】:
以上是关于仅在 Asp.net 中回滚到特定迁移的主要内容,如果未能解决你的问题,请参考以下文章
当单值事件或事务的嵌套 ValueEventListener 失败时,如何在 Firebase Realtime DB for Android 中回滚到以前的状态?