之前做的項目已經(jīng)運行了好幾年了,最近準(zhǔn)備更新一下代碼和升級一下使用內(nèi)容,于是就打算先把Django的版本先更新一下,因為很久沒更新了,其實是知道這更新了以后,肯定會有問題出現(xiàn),但是強迫癥導(dǎo)致我必須更新。
直接就是一行代碼升級框架:pip install --upgrade django,使用pip直接升級就行。升級完了直接運行項目,發(fā)現(xiàn)報錯了。django.db.utils.NotSupportedError: MySQL 8.0.11 or later is required (found 5.7.44).
啥意思呢,雖然看不太懂,但是感覺就是應(yīng)該讓我使用mysql8,但是我現(xiàn)在的數(shù)據(jù)庫是mysql5.7,大概就是這個意思。但是服務(wù)器上面很多其他項目都是用的5.7的數(shù)據(jù)庫,這兩個數(shù)據(jù)庫的版本又沒有辦法同時運行,升級數(shù)據(jù)庫顯然特別麻煩。
經(jīng)過仔細(xì)閱讀報錯信息發(fā)現(xiàn),這個提示是個檢測的提示,應(yīng)該是不是強制必須使用mysql8的,我把這個提示關(guān)掉應(yīng)該就可以正常使用了。
限制的文件就是上面報錯提示的base.py,里面的這個方法self.check_database_version_supported(),我們把這個方法注釋掉就可以了,文件的路徑是:你的虛擬環(huán)境地址/lib64/python3.12/site-packages/django/db/backends/base/大概都是這個路徑吧。225行,直接注釋,重啟服務(wù)發(fā)現(xiàn)項目可以正常啟動了。