【发布时间】:2012-03-29 12:03:38
【问题描述】:
我有一个我最近使用DbContext.Database.Create() 创建的数据库的本地实例,因此__MigrationHistory 表存在与当前匹配代码的InitalCreate 条目。
但是,Migrations 文件夹中存在一些基于代码的迁移。这些将在我们的开发和登台环境中运行,以使这些数据库与代码保持一致。但是,我不需要在本地应用它们,因为我使用当前代码创建了数据库。
我现在需要对模型进行更改并创建相应的迁移。但是当我运行Add-Migration TestMigration 时,出现以下错误
Unable to generate an explicit migration because the following explicit
migrations are pending:
[201203271113060_AddTableX,
201203290856574_AlterColumnY]
Apply the pending explicit migrations before attempting to generate
a new explicit migration.
在这种情况下我该怎么办?我不能将 Add-Migration 工具指向另一个环境,因为不能保证该版本与我在本地拥有的版本相匹配。我想要一个只匹配我所做更改的迁移。
我似乎有几个选择,但没有一个是理想的:
- 从 Migrations 文件夹中删除其他迁移,运行 Add-Migration 命令,升级数据库,然后恢复旧迁移。这很简单,但似乎有点 hackish。
- 恢复到应用第一次迁移的源代码控制中的模型版本,然后构建它并使用它来创建数据库。然后获取最新版本,应用所有迁移,然后我就可以添加我的迁移了。这似乎需要付出很多努力!
- 手动创建迁移。
有人对如何管理有任何建议吗?
【问题讨论】:
标签: entity-framework-4.3 entity-framework-migrations