首先是EF代码 - 忘了运行“添加迁移”

时间:2013-05-07 03:08:29

标签: c# entity-framework ef-code-first entity-framework-5 ef-migrations

我有一个已经发布到生产服务器的Web项目。在我的开发机器上,我对模型类进行了一些更改,并在没有运行Update-Database的情况下运行Add-Migration。我试着

Update-Database -TargetMigration:"201304020555457_previous_migration"

但是我得到了错误

  

未应用自动迁移,因为它会导致数据丢失。

如何回滚以便我可以获得在生产服务器上应用的完整SQL脚本?

更新

我刚刚发布了代码,在浏览器中启动了页面,并且数据库更改(添加列)在执行后完成。我不需要做任何事情。这是否意味着每次都不必运行Add-Migration

2 个答案:

答案 0 :(得分:0)

您可以撤消所做的更改,然后运行Update-Database。 然后重新进行更改,这次运行Add-Migration

答案 1 :(得分:0)

如果您的初始化程序是 MigrateDatabaseToLatestVersion ,并且您的配置已将 AutomaticMigrationsEnabled 设置为true,那么它将更新您的数据库而无需迁移(如果可以)。

如果您真的希望只能为您真正想要记录或想要修改的更改添加迁移,则可以跳过添加简单列并添加迁移以重命名列。例如。

但如果我在哪里,我会继续完成迁移,以避免问题进一步发生。