SQLAlchemy连接池如何与SQLite一起使用?

时间:2018-06-24 02:37:09

标签: python sqlite sqlalchemy

我从the docsthis SO answer中获悉,Session对象是线程局部的,因此每个线程中只能有一个Session。您可以通过sessionmakerscoped_session为每个线程创建一个Session对象。 connection pooling上的文档似乎建议连接池是按{Engine而不是按{Session}。

我很困惑的是如何在Session个对象之间共享数据库连接:

  • Session对象或Engine是否直接执行数据库命令?
  • ScopedSession对象是否具有自己的Engine实例,或者它们共享对单个Engine的访问权限?
  • 将来自连接池的连接传递给其他线程或进程时,实际的数据库访问是从其他线程完成的,还是发生在与Engine相同的线程中?

最后:ScopedSession对象可以安全地共享对SQLite数据库的访问吗?

0 个答案:

没有答案