如何使用Django';移民?

如何使用Django';移民?,django,Django,我有一个字符字段,它是utf8我希望它是utf8mb4,我如何通过Django的迁移实现这一点?Django不支持不同的字符集。您告诉它CharField,它在内部使用Unicode,在与RDBMS通信时使用UTF-8,RDMBS的工作是将字符串转换为用于存储的编码 发件人: Django假设所有数据库都使用UTF-8编码 注意,MySQL调用utf8mb4的东西是其他人(包括Django)调用UTF-8的东西,MySQL调用utf8的东西是UTF-8的子集,在其他地方不存在 因此,Django

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

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

发件人:

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

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


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

您是指该字段本身还是所有字符字段?Django的医生提到了a但我认为这是dbwide@Sayse一个预先存在的字段。这不能回答有关迁移现有数据库的问题,而且在很大程度上是不正确的。Django从来没有对utf8mb4的一次订购支持,没有对等的支持,追踪器上仍然有一个4年的问题,但是Django没有处理fk长度限制的问题。为此,您可以通过字符集覆盖数据库设置中的连接编码。如果必须,也可以传递连接初始化参数。我想我就用runPython吧。