После того, что мы прокомментировали в Как закрыть соединение sqlalchemy в MySQL, я проверяю соединения, которые 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()
?