SQLAlchemy无法对已关闭的数据库错误进行操作

时间:2017-10-26 08:00:18

标签: python-3.x sqlalchemy

我有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收到的对象的所有查询都是成功的。

我该如何解决这个问题?

0 个答案:

没有答案