遵循我们在如何关闭MySQL中的sqlalchemy连接中的评论之后,我正在检查SQLAlchemy创建到我的数据库中的连接,如果不退出Python,我将无法关闭它们。
如果我在python控制台中运行此代码,它将保持会话打开状态,直到我退出python为止:
from sqlalchemy.orm import sessionmaker
from models import OneTable, get_engine
engine = get_engine(database="mydb")
session = sessionmaker(bind=engine)()
results = session.query(OneTable.company_name).all()
# some work with the data #
session.close()
我发现要关闭它的唯一解决方法是engine.dispose()
在最后调用。
根据我上面给出的链接中的评论,我的问题现在是:
- 为什么
engine.dispose()
需要关闭会议? - 还
session.close()
不够吗
sqlalchemy.pool.NullPool
不能解决您的问题?