1、问题概述?

在django框架中使用ORM模型开发程序,执行

python manage.py makemigrations命令生成同步原语的时候,提示如下问题:

raise NotSupportedError(

django.db.utils.NotSupportedError: MySQL 8 or later is required (found 5.7.43).

意思就是:需要MySQL 8或更高版本

但是在当前的企业环境中,大所数使用的还是mysql5.7相关版本。因为5.7之后的8.x版本是付费版本,不是用不起付费版,而是5.7更有性价比。贸然的更新数据库肯定是不合适的。

从图中也能够看出,base.py文件报错:

Line 239:in init_connection_state 初始化连接状态

Line 214:in check_database_version_supported 检查数据库版本支持

File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\django\db\backends\base\base.py", line 330, in cursorreturn self._cursor() ^^^^^^^^^^^^^^File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\django\db\backends\base\base.py", line 272, in connectself.init_connection_state()File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\django\db\backends\mysql\base.py", line 257, in init_connection_statesuper().init_connection_state()File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\django\db\backends\base\base.py", line 239, in init_connection_stateself.check_database_version_supported()File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\django\db\backends\base\base.py", line 214, in check_database_version_supportedraise NotSupportedError(django.db.utils.NotSupportedError: MySQL 8 or later is required (found 5.7.43).

2、解决办法

解决办法,要么修改自己的数据库版本为mysql8.x,要么让django不要检查。我们采用第二种方式。

第一步:找到base.py文件

我们可以直接搜索base.py文件,选中第一个

或者也可以搜索:check database version supported

上面的两种方式都可以找到base.py文件。

第二步:找到base.py中的239行,注解注释掉数据库检查就可以了。

第三步:再次执行python manage.py makemigrations命令

从图中可以看出,模型创建成功

PS E:\pythonworkspace\mydjango_project> python manage.py makemigrations
Migrations for ‘accounts’:
accounts\migrations\0001_initial.py
– Create model User