efcore、.net core运行时提示 Duplicate column name 'xxxx' 错误解决方法

项目使用的是.net core2.2,数据库是mysql-5.7.26-winx64

因为在数据库多个表中新增了新的字段,导致更新到正式的时候首次运行时提示 Duplicate column name 'xxxx' 这个错误,但是在测试的时候,却可以成功运行,猜测可能是因为正式数据比较多或者mysql的bug,导致该问题。
https://bugs.mysql.com/bug.php?id=68889

在多次尝试了后,一直提示该错误,于是想到了手动插入迁移记录尝试解决该问题。

首先在测试库和正式库分别运行如下sql:select * from __efmigrationshistory order by migrationid desc;

找出最后不一样的自动迁移记录

然后手动添加sql语句:insert into __efmigrationshistory values('20200427160328_20200428V1','2.2.6-servicing-10079');

再在正式库执行该sql语句

然后查看项目中Migrations目录下的对应“20200427160328_20200428V1”的迁移记录的变更字段,手动修改正式库。

如下变更信息为,在Orders表新增了列OrderId,则手动在Orders表插入OrderId列

再次回收网站应用程序池,重新打开项目,正常运行。

 

posted @ 2020-04-30 09:46  事理  阅读(968)  评论(0编辑  收藏  举报