按照我們在How to close sqlalchemy connection in MySQL中所評論的內容,我正在檢查SQLAlchemy創建的連接到我的數據庫中,並且無法在不退出Python的情況下關閉它們。如何關閉SQLAlchemy會話?
如果我運行在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'不能解決您的問題嗎? –
嗯@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#switching-pool-implementation –