MySQL的datatime(6)格式问题

2020-05-29  本文已影响0人  jojo1313

背景:master 5.6.46 + django 1.11.29
slave 5.1.7

问题:slave 导入master sql文件时,报语法错误,指向datatime(6)列有语法错误

原因: mysql 5.1.7版本不支持datatime(6)字段,即不支持毫秒级时间精度

解决方案:

  1. 升级 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
上一篇下一篇

猜你喜欢

热点阅读