我使用sqlite(v2.6.0)作为数据库后端,并使用sqlalchemy(v0.7.9)来操作它。
最近我收到了错误OperationalError: (OperationalError) database is locked
通过搜索stackoverflow,可能的解决方案是增加连接的超时。 参考:OperationalError: database is locked
但是我不知道如何在sqlalchemy中做到这一点(因为连接实际上是由它控制的) 有人能指点我吗?
答案 0 :(得分:18)
SQLAlchemy的create_engine()
接受一个参数connect_args
,这是一个字典,将传递给底层DBAPI的connect()
(参见Custom DBAPI connect()
arguments)。 sqlite3.connect()
接受timeout
参数,因此这应该有效:
create_engine('sqlite:///some.db', connect_args={'timeout': 15})