移民从哪里来?

Posted

技术标签:

【中文标题】移民从哪里来?【英文标题】:Where are the migrations coming from? 【发布时间】:2013-10-20 02:06:10 【问题描述】:

我首先使用代码来生成数据库。 我希望从使用 add-migration InitialCreate 生成的迁移中创建数据库

数据库确实使用 InitialCreate 迁移中的代码创建。

但是,当我尝试使用 Add-Migration One 创建后续迁移时

我收到一个错误

无法生成显式迁移,因为以下原因 显式迁移待定:[201310112018474_InitialCreate]。 在尝试生成之前应用挂起的显式迁移 新的显式迁移。

我尝试运行 Update-Database -Targetmigration:0,它列出了过去创建但不再存在的迁移。

PM> Update-Database -Targetmigration:0 指定“-Verbose”标志以 查看应用于目标数据库的 SQL 语句。 恢复迁移:[201310110726212_two, 201310110719552_InitialSchema,201310090149561_k1]。还原 自动迁移:201310110726212_two。自动恢复 迁移:201310110719552_InitialSchema。自动恢复 迁移:201310090149561_k1。

迁移历史表仅包含一条用于初始创建的记录。 我的问题是,PM 如何知道这些不再存在的旧迁移?

注意 - 我已经从迁移文件夹中删除了迁移

我正在使用 EF5、C# Winforms

【问题讨论】:

【参考方案1】:

PM 使用的解决方案中有迁移文件夹。

如果您从解决方案中删除迁移文件夹并运行应用程序,则将从代码中正确创建数据库。

如果您的现有数据库由于您在代码中所做的更改而需要迁移(因此数据库需要反映这些更改),您只需要迁移文件

【讨论】:

我编辑了问题以使其更清晰。迁移已从迁移文件夹中删除,并且不在驱动器上。更重要的是数据库已被删除,因此历史表不存在。不知何故,PM 似乎在某处缓存历史。非常混乱。 您是否也删除了初始创建?您应该这样做,或者最好删除迁移文件夹。 我是这么认为的。不幸的是,我无法再重现该问题

以上是关于移民从哪里来?的主要内容,如果未能解决你的问题,请参考以下文章

测试,从哪里来,到哪里去?

云原生是什么?它从哪里来?又到哪里去?

什么是工业互联网?它从哪里来,要到哪里去?

火星上的甲烷从哪里来,科学家用算法给出了答案

虫从哪里来绘本

ASPasswordCredential - 从哪里来?