根据我们在如何在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
仍无法解决您的问题吗? - Alvaro Fuentes