.net - 是否可以恢复意外删除的 EF 迁移?
问题描述
我正在为一个涉及对数据库进行一组更改的项目开发新功能。该项目使用 Entity Framework 6 Code First。
我结束了我的测试,当我意识到我错过了迁移(所有源文件 .cs、.Designer.cs、.resx)时,我正要发布代码和数据库更改。
我不能确定它是如何发生的,但我必须在运行后Update-Database
删除了这些文件。
现在,当我Get-Migrations
在我的开发数据库上运行时,我得到一个如下列表:
//LastGoodMigration
//DeletedMigration => can this be recovered?
//AnotherMigration
//CurrentMigraton
从这种情况中恢复的正确方法是什么?
解决方案
我找到了解决方案,毕竟我觉得很愚蠢。
我错误地专注于“恢复”丢失的迁移文件的任务,忘记了当前数据库状态毕竟是由当前实体类决定的事实。
所以我发出了以下命令:
Update-Database -TargetMigration LastGoodMigration -Force
然后我删除了以下所有迁移文件,并用一个简单的方法重新构建了一个新的单一迁移:
Add-Migration NewAllIncludingMigration
抱歉这个愚蠢的问题。
推荐阅读
- git - 在 Azure 中,如何克隆在不同服务器中使用 git-lfs 存储库的存储库?
- php - WP_Query:在特定时间以特定顺序显示帖子
- c++ - 删除和替换 .txt 文件中的特定行
- javascript - 模态中日期选择器的问题
- webpack - Webpack 加载器:如何在加载器为每个文件运行后发出单个文件?
- ansible - 如果 Windows 中不存在目录,Ansible 会使剧本失败
- keras - keras compile 需要源参数,除非指定该参数,否则不会运行
- android - 如何获得花在片段/活动上的时间
- r - 在 R 包之间传递目录位置的最佳实践
- python - 了解不同 SHAP 方法的假设