django报错: raise NotSupportedError(django.db.utils.NotSupportedError: MySQL 8 or later is required

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 检查数据库版本支持

django报错: raise NotSupportedError(django.db.utils.NotSupportedError: MySQL 8 or later is required_第1张图片

  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文件,选中第一个

django报错: raise NotSupportedError(django.db.utils.NotSupportedError: MySQL 8 or later is required_第2张图片

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

django报错: raise NotSupportedError(django.db.utils.NotSupportedError: MySQL 8 or later is required_第3张图片

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

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

django报错: raise NotSupportedError(django.db.utils.NotSupportedError: MySQL 8 or later is required_第4张图片

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

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

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

你可能感兴趣的:(Python基础,django数据库版本不支持)