python - django inspectdb utf8mb4 错误

标签 python mysql django utf8mb4

Python manage.py inspectdb 给出以下错误,即使在所有表都 有 CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci

从 django.db 导入模型

无法检查表“执行”

错误是:(3719, "3719: 'utf8' 当前是字符集 UTF8MB3 的别名,但在未来的版本中将成为 UTF8MB4 的别名。请考虑使用 UTF8MB4 以便明确。",无)

最佳答案

我最近遇到了完全相同的问题。 我向 Django 提出了一个错误请求,但 Django 不接受它作为他们的错误。

MySQL 8 已从 UTF8MB3 切换为 UTF8MB4 作为默认字符集。截至8.0.11如果您访问使用以前版本创建的表,则会返回一条警告,鼓励您切换到 UTF8MB4。

当您运行 inspectdb 时,INFORMATION_SCHEMA 表仍在 UTF8MB3 中,因此您会收到返回给 Django 的警告,而 Django 目前无法忽略该警告。

我在 Django bug ticket 上有一个完整的例子来说明如何解决这个错误: https://code.djangoproject.com/ticket/29678

我已经能够完全使用 MySQL 8.0.12 作为强大的 Django 应用程序的后端 所以一旦你解决了这个问题,你应该会没事的。

关于python - django inspectdb utf8mb4 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52081773/

相关文章:

Python绑定(bind)C++虚成员函数无法调用

php - 从表单运行数组

mysql - 添加累积(运行总计?)列的优化?

python - 获取用户列表以及组成员身份?

python - 在 Python 程序中处理大量对象

python - API 调用中的 JSON 结果

python - 使用 to_sql 将数据追加到 pandas 中已有的表中

php - 使用 AJAX 更新记录而不刷新表单

使用 mod_wsgi 卡住 Django/Apache

django - 如何在没有 Mercurial 文件的情况下将 Django 部署到生产服务器?