我得到了一个数据库,意外地删除了__MigrationHistory表。现在程序抛出错误,我不能丢失所有的数据。还有恢复我删除的表吗??我会失去我所有的数据库吗?
我手动添加了__MigrationHistory,现在是错误:
其他信息:无法更新数据库以与当前模型匹配,因为有挂起的更改,并且禁用了自动迁移。要么将挂起的模型更改写入基于代码的迁移,要么启用自动迁移。将DbMigrationsConfiguration.AutomaticMigrationsEnabled设置为true以启用自动迁移
发布于 2015-04-30 21:50:25
您可以在项目中“重置”迁移的状态。本质上,您将创建一个迁移状态,其中实体框架认为数据库的当前状态是“第一次”迁移。但是,请注意,这将限制您回滚到具有早期迁移状态的应用程序的早期版本。
add-migration Reset。因为迁移文件夹不包含任何以前的迁移,所以Reset迁移将是处于当前状态的模型的完整脚本。重要验证此Up方法与当前数据库表状态完全匹配。Reset迁移中,注释掉Up方法中的所有内容。我们不想运行Up方法,因为数据库应该已经匹配了。update-database命令。这将创建一个新的__MigrationHistory表,并在表中创建一个新行,表明数据库与Reset迁移步骤匹配。但是,它不会对数据库进行任何更改,因为Up方法是空的。Reset迁移中Up方法周围的注释,这样就可以编写新数据库的脚本。发布于 2016-03-16 13:59:01
如果您想维护您的迁移历史记录
创建表dbo.MigrationHistory;
update-database命令:它将重新填充__MigrationHistory,而不尝试执行任何其他操作发布于 2015-04-30 21:58:55
将脚本指向另一个空数据库。运行你所有的迁移。将表和数据从__MigrationHistory复制到生产数据库中。
https://stackoverflow.com/questions/29977907
复制相似问题