码迷,mamicode.com
首页 > 数据库 > 详细

Django创建表时报错django.db.utils.InternalError: (1366问题解决记录

时间:2020-06-10 19:29:32      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:ati   pat   格式   ons   动态   utf-8   sqlite3   删除   databases   

问题出现

执行Python manage.py makemigrations生成创建表的py文件

执行python manage.py migrate创建数据表

界面出现报错

技术图片

 

问题原因

网上搜索原因,是因为在model模块中配置了中文名称

    class Meta:
        # 设置Admin界面的显示内容
        verbose_name = ‘歌曲动态‘
        verbose_name_plural = ‘歌曲动态‘

而创建数据库默认的编码格式不是UTF-8,所以导致建表过程中报了数据库编码格式的错误

解决办法

方法一:

  model表中取消掉中文命名,然后再执行建表操作

方法二:

  删除创建的数据库,重新创建数据库执行命令指定编码格式CREATE DATABASE 数据库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

  修改setting.py中的数据库配置

  

DATABASES = {
    ‘default‘: {
        ‘ENGINE‘: ‘django.db.backends.mysql‘,
        # ‘NAME‘: os.path.join(BASE_DIR, ‘db.sqlite3‘),
        ‘HOST‘:‘127.0.0.1‘,
        ‘PORT‘:‘3306‘,
        ‘NAME‘:‘guest‘,
        ‘USER‘:‘root‘,
        ‘PASSWORD‘:‘111111‘,
        ‘TEST‘: {
            ‘CHARSET‘ : ‘utf8‘,
            ‘COLLATION‘:‘utf8_general_ci‘
        }
    }
}

再次执行python manage.py migrate后正常创建

参考地址:https://www.cnblogs.com/LOVEYU/p/10948289.html

 

Django创建表时报错django.db.utils.InternalError: (1366问题解决记录

标签:ati   pat   格式   ons   动态   utf-8   sqlite3   删除   databases   

原文地址:https://www.cnblogs.com/lumama520/p/13087327.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!