【发布时间】:2018-04-25 22:27:10
【问题描述】:
我在 Mac Sierra 上使用 Django 2.0.4、MySQL 8.0.11、mysqlclient-1.3.12 和 Python 3.6.5。我收到以下警告:
/lib/python3.6/site-packages/django/db/backends/mysql/base.py:71: 警告: (3719, "'utf8' 当前是字符集 UTF8MB3 的别名,它将是在未来的版本中被 UTF8MB4 取代。请考虑使用 UTF8MB4 以明确。")
我知道这只是一个警告,但我仍然不喜欢看到它并一直在寻找解决方案。我尝试了很多方法,包括使用 UTF8 Collation UTF8-bin 和 UTF8MB4 Collation UTF8MB4-bin 中的各种选项删除和重新创建我的 Schema,但似乎没有任何效果。此警告来自 MySQL/base.py,但我不知道谁在使用 MySQL 反对的 'utf8' 进行调用。
有人有什么想法吗?
附加信息
在得到下面的答案后,我开始考虑这个问题,并意识到到目前为止我只在 migrate 命令期间收到此警告,这似乎是 auth 应用程序的初始设置。我用 sqlmigrate 命令查看了所有的 sql,没有看到任何提到 utf8,所以我仍然不知道为什么会发生这种情况
(CL) Mac-mini:mysite Lehrian$ python manage.py migrate 操作到 perform:应用所有迁移:admin、auth、contenttypes、polls、 会话运行迁移:应用 contenttypes.0001_initial... OK 正在应用 auth.0001_initial... OK 正在应用 admin.0001_initial... OK 正在应用 admin.0002_logentry_remove_auto_add... OK 正在应用 contenttypes.0002_remove_content_type_name... OK 正在申请 auth.0002_alter_permission_name_max_length... OK 正在申请 auth.0003_alter_user_email_max_length... OK 申请中 auth.0004_alter_user_username_opts... OK 申请中 auth.0005_alter_user_last_login_null... OK 申请中 auth.0006_require_contenttypes_0002... OK 申请中 auth.0007_alter_validators_add_error_messages... 好的 /Users/Lehrian/Documents/Davelopment/CL/lib/python3.6/site-packages/django/db/backends/mysql/base.py:71: 警告: (3719, "'utf8' 当前是字符集的别名 UTF8MB3,在未来的版本中将被 UTF8MB4 取代。请 考虑使用 UTF8MB4 以便明确。”)返回 self.cursor.execute(query, args) 应用 auth.0008_alter_user_username_max_length... OK 申请中 auth.0009_alter_user_last_name_max_length... OK 申请中 polls.0001_initial... OK 正在应用 polls.0002_auto_20180425_1458... OK 正在应用 session.0001_initial... OK (CL) Mac-mini:mysite 莱里安$
我在运行测试时也得到了它,但我得出结论这与上面的错误相同,因为测试创建了它自己的数据库(也使用字符集 utf8mb4,我保留了 test_polls 数据库并查看了它)并且它运行相同的迁移如上。
【问题讨论】:
-
商标大写;语法;布局。
标签: mysql django utf-8 utf8mb4