移民从哪里来?
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 似乎在某处缓存历史。非常混乱。 您是否也删除了初始创建?您应该这样做,或者最好删除迁移文件夹。 我是这么认为的。不幸的是,我无法再重现该问题以上是关于移民从哪里来?的主要内容,如果未能解决你的问题,请参考以下文章