背景:master 5.6.46 + django 1.11.29
slave 5.1.7
问题:slave 导入master sql文件时,报语法错误,指向datatime(6)列有语法错误
原因: mysql 5.1.7版本不支持datatime(6)字段,即不支持毫秒级时间精度
解决方案:
- 升级 slave 版本到 5.6.46
2.修改master datatime(6)为datatime类型, 方法如下:
修改models.py 配置DateTimeField(default = timezone.now),
drop table auth_,django_
python manage.py makemigrations
python manage.py migrate 重新创建表
import django.utils.timezone as timezone
from django.db.backends.mysql.base import DatabaseFeatures # 关键设置
DatabaseFeatures.supports_microsecond_precision = False # 关键设置
class AuthUser(models.Model):
...
date_joined = models.DateTimeField(default = timezone.now)
last_login = models.DateTimeField(blank=True, null=True,default = timezone.now)
image.png
image.png
修改前:
image.png
修改后:
image.png
网友评论