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 cursor
return self._cursor()
^^^^^^^^^^^^^^
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\django\db\backends\base\base.py", line 272, in connect
self.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_state
super().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_state
self.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_supported
raise 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 'a***ounts':
a***ounts\migrations\0001_initial.py
- Create model User