实体框架代码优先迁移 - 我可以针对以前的迁移

Posted

技术标签:

【中文标题】实体框架代码优先迁移 - 我可以针对以前的迁移【英文标题】:Entity Framework Code First Migrations - Can I target previous migration 【发布时间】:2012-04-04 13:44:45 【问题描述】:

我正在使用带有 CCNet 的 migration.exe 来更新部署时的数据库,我想知道如果我决定回滚已发布的版本,是否有办法回滚该更改。

我知道有一种方法可以定位原始版本:$InitialDatabase,还有一种方法可以定位命名迁移 TargetMigration:“AddPostAbstract”。但是迁移目标的名称会在每次部署时发生变化。

有没有什么方法可以针对之前的迁移,不管它的名字是什么?

【问题讨论】:

【参考方案1】:

在这种情况下回滚将是手动任务,否则您很可能需要创建一些自定义操作来检查目标数据库的 __MigrationHistory 表并找到目标迁移的名称。

$InitialDatabase 只是 powershell 变量,它的值为 0。使用 powershell 时,您可以创建自己的自定义 $Previous 变量,并使用一些自定义 powershell 脚本从数据库加载迁移名称来填充它。

【讨论】:

以上是关于实体框架代码优先迁移 - 我可以针对以前的迁移的主要内容,如果未能解决你的问题,请参考以下文章

如何为实体框架代码优先迁移设置隔离级别

调试代码优先的实体框架迁移代码

实体框架 - 迁移 - 代码优先 - 每次迁移播种

在生产中使用实体框架(代码优先)迁移

实体框架代码优先 - 初始代码迁移不起作用

实体框架代码优先:迁移失败并更新数据库,强制不必要的(?)添加迁移