关于python manage.py migrate报错的解决方法

问题描述: 

Django 。*需要MySQL 5.6或更高版本。它通过映射DateTimeField到打破了兼容性datetime(6)

 在PyhCharm的命令行中执行python manage.py migrate命令时,抛了一个关于SQL的异常信息如下:

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"))

在stack overflow上找到了发生此异常的原因:传送门,大概意思就是Django框架生成的SQL语句不兼容MySQL5.5,,,但是我既不想升级MySQL,也不想降级Django。其解决方法就是在setting.py顶部加入一段手动映射即可解决此问题。项目结构以及增加的代码如下:

截图:

截图

代码:

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

 添加之后再执行 python manage.py migrate,执行成功。

截图

Nice!完美解决! 今晚加鸡腿。

 

  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值