夹层和 MySQL:unicode 错误
Mezzanine and MySQL: unicode errors
在使用 MySQL 后端的夹层默认设置(通过 pip
)期间,我在选择安装包含的示例后看到 unicode 错误。
sudo pip install mezzanine
...
sudo -u mezzanine python manage.py createdb --noinput
这会产生以下错误,可追溯到 4 字节 unicode 实体。
django.db.utils.OperationalError: (1366, "Incorrect string value: '\xEF\xBE\x8C\xE3\x80\x8D...' for column 'file' at row 1")
MySQL 的默认 unicode 仅支持 3 字节实体。但是,当我将它们的 tpe 设置为 utf8mb4(4 字节 MySQL UTF-8)时,我却遇到了这个错误:
django.db.utils.OperationalError: (1071, 'Specified key was too long; max key length is 767 bytes')
问题是:难道没有人将 Mezzanine 的示例与 MySQL 一起使用吗?如果这样做,他们如何配置数据库,您使用的是什么版本的 Mezzanine 和 MySQL?
简单的回答:这是一个错误。我修复了 Mezzanine 的配置,让一切都与 MySql 5.6 一起工作,但是那四个四字节的 unicode 警告仍然存在 如果你安装示例站点。
只要我没有处于严格模式的数据库,在这种模式下警告会使整个事务失败并且安装崩溃,这是相当良性的。一个小错误,还有指责的余地:Mezzanine 使用完整的 UTF 范围,并且可以很好地与许多数据库一起工作......mySql 是这里的异常值。
在使用 MySQL 后端的夹层默认设置(通过 pip
)期间,我在选择安装包含的示例后看到 unicode 错误。
sudo pip install mezzanine
...
sudo -u mezzanine python manage.py createdb --noinput
这会产生以下错误,可追溯到 4 字节 unicode 实体。
django.db.utils.OperationalError: (1366, "Incorrect string value: '\xEF\xBE\x8C\xE3\x80\x8D...' for column 'file' at row 1")
MySQL 的默认 unicode 仅支持 3 字节实体。但是,当我将它们的 tpe 设置为 utf8mb4(4 字节 MySQL UTF-8)时,我却遇到了这个错误:
django.db.utils.OperationalError: (1071, 'Specified key was too long; max key length is 767 bytes')
问题是:难道没有人将 Mezzanine 的示例与 MySQL 一起使用吗?如果这样做,他们如何配置数据库,您使用的是什么版本的 Mezzanine 和 MySQL?
简单的回答:这是一个错误。我修复了 Mezzanine 的配置,让一切都与 MySql 5.6 一起工作,但是那四个四字节的 unicode 警告仍然存在 如果你安装示例站点。
只要我没有处于严格模式的数据库,在这种模式下警告会使整个事务失败并且安装崩溃,这是相当良性的。一个小错误,还有指责的余地:Mezzanine 使用完整的 UTF 范围,并且可以很好地与许多数据库一起工作......mySql 是这里的异常值。