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列

再次回收網站應用程序池,重新打開項目,正常運行。

浙公網安備 33010602011771號