14

我使用 sqlite (v2.6.0) 作为数据库后端并使用 sqlalchemy(v0.7.9) 来操作它。最近我遇到了一个错误OperationalError: (OperationalError) database is locked

通过搜索stackoverflow,一个可能的解决方案是增加连接的超时时间。参考:OperationalError:数据库被锁定

但我不知道如何在 sqlalchemy 中做到这一点(因为连接实际上是由它控制的)有人可以给我一个方向吗?

4

1 回答 1

27

SQLAlchemycreate_engine()接受一个参数,该参数connect_args是一个字典,将传递给connect()底层 DBAPI(请参阅自定义 DBAPIconnect()参数)。sqlite3.connect()接受timeout参数,所以这应该工作:

create_engine('sqlite:///some.db', connect_args={'timeout': 15})
于 2013-02-25T12:04:21.170 回答