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列
再次回收网站应用程序池,重新打开项目,正常运行。