【问题标题】:Sync migrations with actual changes将迁移与实际更改同步
【发布时间】:2015-08-27 14:29:25
【问题描述】:

EF Migrations 无法自动检测一些复杂的更改,因此我创建了一个空迁移并手动更改了 Up()Down()。 我更新了数据库,一切都在正向和反向方向运行。

但后来,当我进行更多更改并创建新迁移时,它会自动添加各种不需要的更改 - 因为我已经在之前的迁移中手动处理了它们

我知道我可以删除所有迁移并从头开始,但这会产生太多问题,所以我不想这样做。

我该如何解决这个问题?

【问题讨论】:

    标签: c# entity-framework ef-code-first entity-framework-6 entity-framework-migrations


    【解决方案1】:

    如果您没有以前发布的数据库,您可以随时建立新的基线。删除所有旧迁移,然后运行:

    Add-Migration MyBaseline –IgnoreChanges
    Update-Database
    

    现在您的模型和数据库将同步,您可以更改模型并创建新的迁移。我通常会打开自动迁移,直到我准备好部署,然后我将它们整合到一个迁移中,我可以编写脚本给客户端。

    https://msdn.microsoft.com/en-us/data/dn579398.aspx#step3

    【讨论】:

    • 是的,我知道这个选项,但就像我上面所说的那样,它给我带来了我想避免的问题 - 但如果不是这种情况,那么我会使用这种方法,因为它简单而整洁.我发布的答案对我有用。
    • 是的,运行空的 Up() Down() 具有相同的净效果。
    【解决方案2】:

    Up()Down() 函数中删除有问题的垃圾
    编译
    Update-Database

    【讨论】:

      猜你喜欢
      • 2017-05-26
      • 2015-11-26
      • 1970-01-01
      • 2017-12-05
      • 2012-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多