我有一个.net MVC项目,它使用Code第一种方法,我需要添加一个新表,并且迁移文件夹已经存在并且包含许多之前已经创建的迁移文件;当我运行Add-Migration
时:
无法生成显式迁移,因为以下内容 显式迁移正在等待: [201304230714010_InformationalMessage,201305231312259_Remove 硬编码货币]。之前应用挂起的显式迁移 尝试生成新的显式迁移。
所以我运行Update-Database –Verbose
它给了我错误:
已有一个名为' InformationalMessage'在里面 数据库中。
似乎它再次执行迁移文件,因为它已经存在而给我这个错误是正常的。
有人可以帮我解决如何使用我的新表更新此代码吗?
答案 0 :(得分:0)
错误说您已经有待处理的迁移,因此首先运行挂起的迁移,然后运行迁移。
update-database -verbose
(先运行待处理的迁移)。
Add-migration <nameOfMigration>
(添加您的迁移)。
Update-database -verbose
(在最后一次运行您的迁移)。
答案 1 :(得分:0)
我偶尔会遇到这种情况。我所做的是在Up()和Down()方法中为该迁移注释掉CreateTable命令。当我需要一个生产脚本时,我通常会将我的更改转换为单个更新。
答案 2 :(得分:0)
暂时将DropTable("InformationalMessage")
添加到201304230714010_InformationalMessage
迁移的副本中 - 请注意,这将丢失该表中当前的所有数据,但应该让您可以添加新的迁移...如果这是一个问题,请在处理迁移时备份实际的表数据。