如何通过Django的迁移改变字符集和校对?

时间:2016-12-15 10:08:30

标签: django

我有一个字符字段utf8我希望它是utf8mb4,我如何通过Django的迁移实现这一目标?

1 个答案:

答案 0 :(得分:1)

Django不支持不同的字符集。你告诉它CharField,它在内部使用Unicode,它在与RDBMS交谈时使用UTF-8,并且RDMBS的工作是将字符串转换为它用于存储的编码。

来自https://docs.djangoproject.com/en/1.10/ref/databases/#encoding

  

Django假设所有数据库都使用UTF-8编码。

请注意,MySQL调用utf8mb4的东西是其他所有人(包括Django)调用UTF-8的东西,MySQL调用utf8的东西是UTF-8的一个子集,在其他地方不存在。

因此Django不支持对数据库字段编码的任何混乱。它希望您使用支持所有Unicode字符的编码创建数据库,并使RDBMS在与数据库客户端(即使用Django)通信时使用UTF-8。