【问题标题】:How to use EF 4.3 explicit migrations with more than one database (dev, staging, prod)如何将 EF 4.3 显式迁移与多个数据库(开发、登台、产品)一起使用
【发布时间】:2012-06-05 21:27:29
【问题描述】:

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

但是当我尝试使用

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

Update-Database -ConnectionStringName=MyProdConnectionStringName

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

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

【问题讨论】:

    标签: entity-framework-4 ef-code-first database-migration entity-framework-migrations


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-02-25
      • 2019-08-03
      • 2012-07-10
      • 1970-01-01
      • 2013-11-11
      • 1970-01-01
      • 2012-06-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多