asp.net-mvc - 从 __MigrationHistory 表中删除数据后的 EF 6 Code First 迁移
问题描述
我不小心从 __MigrationHistory 表中删除了数据,我尝试将新表和列更改迁移到 db。此时 EF6 显示错误
"There is already an object named 'xxxx' in the database.".
我尝试了使用此命令的方式,并且对表列更改没有影响。
Add-Migration MyMigration1 -IgnoreChanges
Update-database -Force
有很多关于重新创建数据库或其他的建议。但是这些方式可能会影响数据丢失到我的数据库中,其中包含大量测试数据,我无法丢失任何数据。如何在不丢失任何数据的情况下解决此错误。如果有人请...
更新
最后我找到了解决我的问题的方法。我不确定这是解决此类问题的首选方法,但它对我有用。
我清理了 __MigrationHistory 表中的数据,尝试迁移新数据库并将数据从新数据库的 __MigrationHistory 复制到旧数据库,然后将 AutomaticMigration 设置为 true 并运行 update-database 命令,问题就解决了。
解决方案
我不确定它是否是解决这个问题的好方法,但它对我有用。
我刚刚使用正确版本和已应用迁移的名称插入到该表中,我在 EF Core 中完成了它,它确实有效,但请等待有人确认我在写什么。
我看到的问题是您需要再填写两个字段(在 EF Core 中只有两列),但我认为您可以使用例如 SQL Profiler 接收它们
推荐阅读
- sql - 创建一周内活动天数的分布。SQL
- java - Spring 5.x 中包 org.springframework.web.util.Log4jWebConfigurer 的替代品
- mysql - 无法加载文件或程序集'MySql.Data.EntityFramework,Version=8.0.19.0 或其依赖项之一
- c - 如何创建程序检查PE文件
- oracle - nls_session_parameters 中的 NLS_CHARACTERSET 返回 None
- python - 拆分具有多个分隔符的字符串
- wordpress - wordpress 网站上的阿拉伯语文本,方向错误的双引号
- microsoft-graph-api - 创建团队调用时“请求授权租户不匹配”
- ios - 如何检查数组是否填充了某个值?
- javascript - 为什么我的 API 响应没有显示在页面上?