如何在python中使用sqlalchemy和sqlite增加连接超时

use*_*188 10 python sqlite sqlalchemy operationalerror

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

通过搜索stackoverflow,可能的解决方案是增加连接的超时.Referece:OperationalError:数据库被锁定

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

Aud*_*kas 19

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

create_engine('sqlite:///some.db', connect_args={'timeout': 15})
Run Code Online (Sandbox Code Playgroud)

  • 如果有人试图为PostgreSQL 9.3解决同样的问题,connect_args参数将拼写不同:connect_args = {'connect_timeout':15} (8认同)