gpt4 book ai didi

c# - 无法在本地运行 master,因为我的 EF Code First 迁移不同步

转载 作者:太空宇宙 更新时间:2023-11-03 21:28:16 24 4
gpt4 key购买 nike

我遇到了 EF6 代码优先迁移问题。

当我在较低的子分支中进行开发更改以推出新事物时,我在该分支中进行了迁移,并且我的数据库也进行了这些更改。

当我切换到我的 master 分支(我不想合并)并尝试在本地运行它时,我的迁移存在于我的数据库中,但不存在于该代码分支中。

我正在尝试修复错误以从 master 分支转到生产环境并且不想运行任何新的迁移,但它告诉我:

The model backing the 'DummyDBContext' context has changed since the database was created.

我该如何解决这个问题?

最佳答案

这里确实有两个问题。

  1. 存储在数据库中的迁移历史记录(在 _MigrationHistory 表中)与您在 master 分支上的迁移不同步。这就是导致 InvalidOperationException 被抛出的原因。
  2. 实际的数据库架构现在与 EF 基于主分支中存在的迁移理解您的架构的方式不同步。根据您当前的代码(在 master 中),架构应该看起来确实像您切换到 subBranch 并进行更改之前的样子。

最简单的方法是在切换回主分支之前回滚“subBranch”迁移(通过调用 Update-Database -TargetMigration [NameOfPreviousMigration])。缺点是每次切换回 subBranch 时都必须重新运行迁移。

否则,解决这个问题的方法是:

  1. 从 _MigrationHistory 表中手动删除迁移历史记录。
  2. 通过将 DbInitializer 设置为 DropCreate 来回滚对数据库架构所做的任何更改(这将删除数据库中的所有数据,因此请注意 w/这个)或手动撤消迁移对架构所做的任何更改。如果你真的走这条路,当你以任何一种方式切换回 subBranch 时,你都需要从头开始重新运行迁移。

祝你好运;)

关于c# - 无法在本地运行 master,因为我的 EF Code First 迁移不同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25675829/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com