首页 > 解决方案 > 使用 SQLAlchemy / PyMySQL 限制查询错误打印的长度

问题描述

我正在使用 SQLAlchemy 1.3.22 并批量插入数千行。如果存在数据库错误,则在控制台中引发的 SQLAlchemy ProgrammingError 异常会打印查询和所有值。即使我正在分块插入,这仍然会向控制台打印大量垃圾,这会将实际错误消息隐藏在控制台中数千行,非常耗时,甚至可以减慢/冻结 IDE 直到它完成.

我尝试搜索是否有任何方法可以控制此输出 - 我仍然想查看异常和错误消息,但只是限制 SQL 的额外打印及其数千个参数(它打印长 VALUES 子句和所有它将替代那些占位符的东西)。

分成更小的块不是一个好的解决方案,因为它会对性能产生负面影响,并且除非块非常小,否则并不能真正解决问题。我可以捕捉到异常并尝试用截断的消息重新引发它,但这也感觉很糟糕。希望我只是缺少一种控制错误格式的方法...

标签: pythonsqlalchemypymysql

解决方案


推荐阅读