我正在尝试使用 sqlalchemy 连接 mysql 数据库。我已经设置了 charset=utf-8$use_unicode=0
。这适用于几乎所有数据库,但不适用于特定数据库。我相信这是因为它有 'init-connect' 变量设置为 'SET NAMES latin2;'
我无权更改它。
如果我发送显式查询 SET NAMES utf8
,它对我有用,但是如果出现暂时断开连接,则在重新连接后,我的程序再次中断,因为它从服务器获取 lati2 编码的数据。
是否可以创建一些钩子(Hook)以在 sqlalchemy 连接时始终发送 SET NAMES
?或者有什么其他方法可以解决这个问题?
最佳答案
听起来您想要的是自定义 PoolListener。这个 SO 答案解释了如何在 SQLite 的 PRAGMA foreign_keys=ON
的上下文中编写一个
Sqlite / SQLAlchemy: how to enforce Foreign Keys?
关于python - 带有 sqlalchemy 的 utf-8 与 init 连接的数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3617714/