【问题标题】:django inspectdb utf8mb4 errordjango inspectdb utf8mb4 错误
【发布时间】:2019-02-04 11:57:30
【问题描述】:
Python manage.py inspectdb 给出以下错误,即使所有表都已完成
具有 CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
从 django.db 导入模型
无法检查表“执行”
错误是: (3719, "3719: 'utf8' 当前是字符集 UTF8MB3 的别名,但在以后的版本中将是 UTF8MB4 的别名。请考虑使用 UTF8MB4 以便明确。",无)
【问题讨论】:
标签:
python
mysql
django
utf8mb4
【解决方案1】:
我最近遇到了完全相同的问题。
我向 Django 提出了一个错误请求,但 Django 不接受它作为他们的错误。
MySQL 8 已从 UTF8MB3 切换到 UTF8MB4 作为默认字符集。从8.0.11 开始,如果您访问使用先前版本创建的表,则会返回警告,鼓励您切换到 UTF8MB4。
当您运行 inspectdb 时,INFORMATION_SCHEMA 表仍为 UTF8MB3,因此您会收到返回给 Django 的警告,Django 目前无法忽略该警告。
我有一个完整的例子来说明如何在 Django 错误票上解决这个错误:
https://code.djangoproject.com/ticket/29678
我已经能够完全使用 MySQL 8.0.12 作为强大的 Django 应用程序的后端
所以一旦你解决了这个问题,你应该会没事的。