如何使用 Django 2.* mysqlclient 在 MySQL 数据库中设置排序规则?
Posted
技术标签:
【中文标题】如何使用 Django 2.* mysqlclient 在 MySQL 数据库中设置排序规则?【英文标题】:How to set Collation in MySQL database with Django 2.* mysqlclient? 【发布时间】:2018-08-25 06:14:36 【问题描述】:我需要使用 Django 2.* 为 mysql 表设置默认排序规则,我使用 mysqlclient,我的设置是:
DATABASES =
'default':
'ENGINE': 'django.db.backends.mysql',
'NAME': '',
'USER': '',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '3306',
'OPTIONS':
'charset': 'utf8mb4',
,
'charset': 'utf8mb4',
此参数似乎无法正常工作,并且 DB utf8 中的表。虽然我想手动将排序规则设置为 utf8mb4_general_ci
将不胜感激任何线索。
【问题讨论】:
【参考方案1】:'default':
'ENGINE': 'django.db.backends.mysql',
'NAME': '',
'USER': '',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '3306',
'OPTIONS':
'init_command': 'ALTER DATABASE <YOUR_DB_NAME> CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci',
,
感谢https://***.com/a/6115705/2891421
【讨论】:
请注意,init_command 在每个新连接上运行 - 如果不需要更改,运行ALTER DATABASE CHARACTER SET
是否便宜?这似乎是不明智的,使用 RunSQL 的一次性迁移似乎是一种更安全的替代方案docs.djangoproject.com/en/dev/ref/migration-operations/#runsql以上是关于如何使用 Django 2.* mysqlclient 在 MySQL 数据库中设置排序规则?的主要内容,如果未能解决你的问题,请参考以下文章
如何在django-select2中使用django-filter?