首页 > 解决方案 > 如何将非 SQLAlchemy 默认类型设置为 utf8 bin

问题描述

如何将非默认 SQLAlchemy 类型设置为utf8_bin,例如:

class User(sa.Model):
    __tablename__ = 'user'

    id = sa.Column(sqlalchemy_utils.UUIDType(binary=True), primary_key=True, default=uuid.uuid4())

    name = sa.Column(sa.VARCHAR(100, collation='utf8_bin'))

当我尝试插入新用户时,我收到错误:

Warning: (1300, "Invalid utf8 character string: '8FAE44'") rows += self.execute(sql + postfix)

我尝试使用连接到 MySQL,?charset=utf8但它不起作用。我也找到了这个关于错误的线程。

我的 MySQL 版本是 mysql Ver 14.14 Distrib 5.7.21,适用于 Linux (x86_64),使用 EditLine 包装器、Python 3.6.5、SQLAlchemy 1.2.15、SQLAlchemy Utils 0.33.10 ...

标签: pythonmysqlsqlalchemysqlalchemy-utils

解决方案


推荐阅读