После того, что мы прокомментировали в How to close sqlalchemy connection in MySQL, я проверяю соединения, которые SQLAlchemy создает в моей базе данных, и я не могу закрыть их, не выходя из Python.Как закрыть сеанс SQLAlchemy?
Если я запускаю этот код в консоли питона, она сохраняет сеанс не открыт, пока я не выход из питона:
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' не решит вашу проблему? –
Mmmm @xndrme, как его использовать? – fedorqui
Я надеюсь, что эти две ссылки помогут вам http://docs.sqlalchemy.org/en/rel_0_8/glossary.html?highlight=release и http://docs.sqlalchemy.org/en/rel_0_8/core/pooling.html? highlight = pooling # change-pool-реализация –