我有SQLAlchemy Session的代理类:
class MySqlSession(object):
def __init__(self):
self.sql_session = DBSession()
def close(self):
if self._closed:
return
self._closed = True
self._session.rollback()
self._session.close()
def __del__(delf):
self.close()
DBSession由
创建 DBSession = sessionmaker(bind=engine, autoflush=True, expire_on_commit=True)
我收到异常:
调用__del__时sqlalchemy.exc.ProgrammingError: (sqlite3.ProgrammingError) Cannot operate on a closed database.
行self._session.rollback()
,但是__del__调用之前从self._session收到的对象的所有查询都是成功的。
我该如何解决这个问题?