1

我使用带有显式迁移的 EF 4.3。在我的本地开发数据库上定义新迁移并调用 Update-Database 时,一切正常,只有未应用的迁移应用于数据库。

但是当我尝试迁移另一个数据库(在迁移之前与我的开发数据库处于相同状态)时

Update-Database -ConnectionStringName=MyProdConnectionStringName

似乎数据库状态和现有的 __MigrationHistory 表被忽略,并且 ef 将所有迁移应用到我的 prod db,这导致失败,因为那里已经有一些表。

也许它与知道相关,我为我的表使用了自定义模式[Table("TabName", Schema = "stepid")]。__MigrationHistory 表具有数据库的默认架构(我的开发机器上的 dbo 和我的 prod 环境上的项目)。

4

1 回答 1

0

好的,似乎 __MigrationHistory 表必须在 schema 中dbo。EF 迁移将在创建它时使用数据库的默认架构(在我的情况下,它称为“项目”),然后在调用Update-Database它时不会查询该表,但假定从未有任何迁移应用于数据库。

当我手动将架构更改为 dbo 时,它会正常工作。

于 2012-06-14T10:46:06.173 回答