在有显式迁移挂起时添加迁移



因此,当我没有同步的数据库(事实上,直到最近的迁移,根本没有数据库)并且已经对我的模型进行了实质性的更改时,我在尝试生成迁移时遇到了一个基本问题。

以下是具体细节:

  1. 有一系列明确的迁移
  2. 没有数据库。简而言之,有很多悬而未决的更改
  3. 对模型/上下文进行了更改
  4. 当尝试添加迁移时,它会抱怨说显式迁移正在挂起
  5. 如果我尝试通过更新数据库或migrate.exe执行迁移(并使我的数据库同步),它将失败(在成功应用显式迁移之后),并且不会启用自动迁移
  6. 我也不想启用自动迁移(以防止任何架构更改在代码中被提交和下落不明。)

我意识到在#5失败之后,我现在可以运行#4了。然后重新尝试#5,瞧。

我的问题是,这是否是解决这种愚蠢情况的预期方法。

我将使用以下方法。

首先需要应用迁移并指定最后一个迁移

PM> Update-Database -TargetMigration AnyMigrationName
# It updates database to a migration named "AnyMigrationName"
# This will apply migrations if the target hasn't been applied or roll back migrations
# if it has

本地数据库更新后,只需添加新的迁移即可

PM> Add-Migration NewMigrationName
# it scaffolds a new migration named "NewMigrationName" 

为了寻找一个好的参考,我发现了这些关于EF迁移的博客文章,它们可以帮你很多忙。它们涵盖了许多问题,特别是EF迁移和合并冲突以及EF迁移命令参考。

当有许多迁移挂起时,会显示此错误。

如果不需要现有迁移,请首先删除(排除)所有迁移迁移文件夹,然后添加新的迁移。

Add-Migration new

最新更新