sqlalchemy mysql配置中怎么设置utf8_在SqlAlchemy中,我想要一个列是UTF8?

我注意到我的MySQL数据库在默认情况下没有设置为UTF-8。改为选择latin1_swedish_ci排序规则。在

所以我很自然地遇到了一个用户报告的错误,我的应用程序不支持特殊字符。我去确保我的应用程序正确地处理了UTF-8,编写了一个测试,很肯定它可以很好地使用内存中的SQLite,但不能用于生产MySQL我似乎从SQLAlchemy文档中得到的解决方案是对我的列传递一个排序规则:column = db.Column(db.String(500, collation='utf8_general_ci'))

不幸的是,这导致我基于SQLite的单元测试失败——utf8_general_ci不是SQLite支持的编码。它是MySQL特有的。在

SQLite似乎可以使用UTF-8而不指定排序规则。我可以用MySQL进行测试,但是内存中的SQLite数据库对于spot测试来说是一个更快、更直接的测试选项。我确实优先考虑测试的易用性,所以回到使用SQLite进行测试对我来说是一个很大的优先事项。在

我尝试过的其他事情

我也试着加入

^{pr2}$

到我的连接字符串。我还使用了db.Unicode,而不是db.String。似乎没什么区别。在

问题

通过SQLAlchemy是否有一种直接的和数据库无关的方法来指示一个列应该用UTF-8编码?在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值