2016-08-24 42 views
1

我在我的Visual Studio数据项目中有一个__MigrationHistory表和一个migrations文件夹。我需要在git中切换到另一个分支来调查缺陷,因此我需要重置数据库,但切换回来并继续我的工作。开关分支机构以及如何使用EF代码首先重置数据库

这可能吗?我担心如果我尝试解决如何重置数据库以调查缺陷(即,从__MigrationHistory表中删除我的迁移并删除迁移文件)当我需要切换回我的分支时,我会放弃我的工作吗?

这个问题的解决方案是什么?试图运行数据库更新时,删除在migrationhistory表

我得到下面的结果我的条目后

更新?我是否也需要删除相应的迁移文件?

No pending explicit migrations. 
Running Seed method. 

二更新

备份数据库和截断migrationhistory表我收到以下错误

There is already an object named 'Customer' in the database. 

回答

1

要恢复数据库到以前的版本在使用这个命令后包管理器:

Update-Database -TargetMigration "NameOfPreviousMigration"

实体框架在您的数据库上运行Down迁移并保持_MigrationHistory为您同步。应该不需要手动删除记录。

如果模型和数据库不匹配,您将需要还原代码,因为实体框架将引发错误或尝试更新数据库(取决于您是否启用自动迁移)。

当你完成后,运行Update-Database没有-TargetMigration命令开关再次运行Up迁移

参考:

http://elegantcode.com/2012/04/12/entity-framework-migrations-tips/