【问题标题】:Configure the connection_collation with SQLAlchemy使用 SQLAlchemy 配置 connection_collat​​ion
【发布时间】:2017-12-05 19:42:26
【问题描述】:

我正在尝试让 SQLAlchemy 使用 collation_connectionutf8mb4_unicode_ci 连接到 MySQL。

我的服务器和数据库都使用utf8mb4_unicode_ci 排序规则。没有任何配置更改我的collation_connectionutf8_general_ci。如果我将连接字符串中的charset 参数设置为charset=utf8mb4,那么collation_connection 将设置为utf8mb4_general_ci。在使用 SQLAlchemy 时,我找不到任何说明如何设置 collation_connection 的文档。

【问题讨论】:

  • collation_connection 对事物的影响很小。你遇到了什么问题?

标签: python mysql sqlalchemy collation


【解决方案1】:

这是一个特定于 mysql 的变量,你所能做的就是在每次连接初始化时运行一个语句:

In [18]: url = 'mysql+pymysql://test:test@localhost/test'

In [19]: connect_args = {'init_command':"SET @@collation_connection='utf8mb4_unicode_ci'"}

In [20]: with sqlalchemy.create_engine(url, connect_args=connect_args).connect() as con:
    ...:     print(con.execute('select @@collation_connection;').fetchall())
    ...:
[('utf8mb4_unicode_ci',)]

【讨论】:

    猜你喜欢
    • 2010-11-03
    • 2015-08-18
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 1970-01-01
    • 2017-12-09
    相关资源
    最近更新 更多