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

  File "C:UsersAdministratorAppDataLocalProgramsPythonPython311Libsite-packagesdjangodbbackendsbasebase.py", line 330, in cursor
    return self._cursor()
           ^^^^^^^^^^^^^^
  File "C:UsersAdministratorAppDataLocalProgramsPythonPython311Libsite-packagesdjangodbbackendsbasebase.py", line 272, in connect
    self.init_connection_state()
  File "C:UsersAdministratorAppDataLocalProgramsPythonPython311Libsite-packagesdjangodbbackendsmysqlbase.py", line 257, in init_connection_state
    super().init_connection_state()
  File "C:UsersAdministratorAppDataLocalProgramsPythonPython311Libsite-packagesdjangodbbackendsbasebase.py", line 239, in init_connection_state
    self.check_database_version_supported()
  File "C:UsersAdministratorAppDataLocalProgramsPythonPython311Libsite-packagesdjangodbbackendsbasebase.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:pythonworkspacemydjango_project>  python manage.py makemigrations
Migrations for 'accounts':
  accountsmigrations001_initial.py
    - Create model User
 

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>