Django常见错误

本文解决Django2.2连接MySQL5.5时的迁移错误,包括调整mysqlclient版本、修复decode方法调用错误及处理SQL语法问题,最后指出Django2.1以上版本不再支持MySQL5.5。
这是我用django2.2连接MySQL5.5,迁移时报错
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required;
解决方案
找到python安装目录下的base.py文件,"C:\Python37\lib\site-packages\django\db\backends\mysql\base.py

注释掉以下两行

    if version < (1, 3, 3):
         raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__) 

然后执行迁移语句
接着问题又来了

query = query.decode(errors=‘replace’)
AttributeError: ‘str’ object has no attribute ‘decode’
解决方案
打开File "C:\Python37\lib\site-packages\django\db\backends\mysql\operations.py",把146行的decode修改为encode
原:query = query.decode(errors='replace')
改:query = encode.decode(errors='replace')

Bug

(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.0
MySQL升级

总结
Djando2.1以上不在支持MySQL5.5,各位开发的时候要注意版本之间的兼容问题.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值