解决python的Django执行python manage.py migrate的报错

相信有小伙伴在执行迁移文件python manage.py migrate的时候会出现如下主要报错:django.db.migrations.exceptions.MigrationSchemaMissing: Unable to create the django_migrations table ((1064, “You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘(6) NOT NULL)’ at line 1”))
网上的资料和一些大佬的博客解释是不兼容,Django 2.1.x 以后要求MySQL 5.6或更高。它通过将DateTimeField映射到datetime(6)打破了兼容性。
我也查看了自己的相关环境配置信息:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由此看我的MySQL的版本与Django的版本不兼容,网上给出的大多方法是安装更高版本的MySQL,我在一篇博客中看到更好的方法,在你创建的项目settings.py文件中的最顶端增加这些代码:

from django.db.backends.mysql.base import DatabaseWrapper
DatabaseWrapper.data_types['DateTimeField'] = 'datetime' # fix for MySQL 5.5

再次执行迁移命令即可。

猜你喜欢

转载自blog.csdn.net/gwk1234567/article/details/106364894