Django创建表时报错django.db.utils.InternalError: (1366问题解决记录
2024-09-01 21:29:44
问题出现
执行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
最新文章
- Java Programming Test Question 1
- 边工作边刷题:70天一遍leetcode: day 86-1
- DBA_Oracle Startup / Shutdown启动和关闭过程详解(概念)
- C语言练习代码
- Oracle 热备份batch脚本 Windows
- 三元运算符和GridView数据显示
- Hibernate基础学习(四)—对象-关系映射(上)
- 在有main函数的前提下 eclipse找不到主类
- PostgreSQL 创建触发器 Trigger
- JAVA期末考试整理
- 常见模块(二) logging模块
- vue分页组件
- JAVA接口传递参数(POST),从接口接收数据(JSON) -----记录
- mybatis不报错,但是查询结果为0
- C语言复习---获取最大公约数(辗转相除法和更相减损法)
- shell 加法计算
- mysql优化概述2
- 【Raspberry Pi】openwrt 路由
- typedef char int8; 这样定义的好处?
- elasticsearch-jdbc 使用