15

我有一个问题,我无法在网络上找到答案。

我正在将 CodeFirst EF 4.3.1 迁移与 MsSQL 一起使用。

我已经添加了几个迁移,现在我想在两个迁移之间生成一个用于升级/降级的脚本。

对于升级,我运行以下命令,成功重现了升级脚本:

PM> Update-Database -Script -SourceMigration:"201205161144187_AddPostAbstract" -TargetMigration:"201205161203310_BlogLimitsAndTableRename"

但是,对于降级,我运行以下命令失败并出现以下错误:

PM> Update-Database -Script -SourceMigration:"201205161203310_BlogLimitsAndTableRename" -TargetMigration:"201205161144187_AddPostAbstract"
Scripting the downgrade between two specified migrations is not supported.

任何想法如何生成降级脚本?

谢谢。

4

1 回答 1

16

看起来迁移 API 期望您只想从“最新版本”进行降级。

如果BlogLimitsAndTableRename是您最近的迁移(最后一次应用),您可以简单地运行:

Update-Database -Script -TargetMigration:"201205161144187_AddPostAbstract"

如果这不是您的最后一次迁移,您需要先将您的开发数据库恢复到它:

Update-Database -TargetMigration:"201205161203310_BlogLimitsAndTableRename"

现在您应该能够使用第一个命令来获取脚本。

于 2012-06-03T19:05:39.980 回答