【问题标题】:EF Code First: Migrating Database Initialized on Different Code VersionsEF Code First:迁移在不同代码版本上初始化的数据库
【发布时间】:2013-10-11 22:37:20
【问题描述】:

我正在使用 Entity Framework 5 RC,代码优先。我正在努力迁移在不同版本的代码上创建的数据库。例如,数据库 A 是在表 FooBar 不存在时创建的。数据库 B 是在表 FooBar 添加到我的模型后创建的。

我编写了一个添加 FooBar 表的迁移。在调用 CreateTable 之前检查表不存在的 FooBar 迁移是我的责任吗?似乎是这种情况,因为数据库 B 没有 FooBar 迁移的条目并将尝试运行它。

起初,MigrationHistory 表似乎可以让我免于添加这些检查,但由于新数据库在创建数据库之前不会添加迁移条目,因此我仍然需要自己进行检查。这是正确的方法还是我错过了什么?

【问题讨论】:

    标签: entity-framework


    【解决方案1】:

    为了解决我在添加存储过程时遇到的问题,我编写了一个 TSQL 脚本来创建一个新表“_PreviousMigrationHistory”——它在我存储后从“_MigrationHistory”表中接收新条目程序脚本已运行...

    我确实向两个表(INT - IDENTITY(1,1) 的“VersionId”)添加了一个新列,这是我在代码中用于比较的列。

    通过这种方式,您可以使用未更新的迁移模式 (__PreviousMigrationHistory),即使在发生 Code First 迁移之后也是如此。

    这会有帮助吗?

    **编辑 - 对不起,我错过了阅读这个问题。 - 虽然我认为数据库的新实例仍会经历迁移步骤,而这又应将条目添加到 __MigrationHistory 表中?

    【讨论】:

      猜你喜欢
      • 2016-11-06
      • 1970-01-01
      • 1970-01-01
      • 2014-10-08
      • 1970-01-01
      • 2012-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多