【问题标题】:sqlalchemy close all connectionsqlalchemy 关闭所有连接
【发布时间】:2013-08-01 11:57:11
【问题描述】:

我正在尝试使用 sqlalchemy 删除我的数据库:

def dropDb(self, dbName):
    self.closeConnection()
    self.selectDb(None)
    self.execute("drop database %s" % dbName)

def closeConnection(self):
    self._Session.close_all()
    self._engine.dispose()
    del self._Session
    del self._engine

我使用以下方法创建引擎:

sqlalchemy.create_engine(connection_string, poolclass = NullPool)

但我收到以下错误:

详细 ProgrammingError: (ProgrammingError) ('42000', '[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]无法删除数据库 “test_db”,因为它当前正在使用中。 (3702) (SQLExecDirectW)') '删除数据库 test_db' ()

如何强制关闭所有连接?

【问题讨论】:

  • 我相信this question的答案是你所需要的。
  • 我遇到了类似的问题,解决我的问题的方法是添加我在您的问题中看到的 session.close_all()!与engine.dispose() 一起为我做了诀窍。

标签: python sqlalchemy


【解决方案1】:

The current method 用于使用 SQLAlchemy 会话 api 关闭所有连接

from sqlalchemy.orm import close_all_sessions

close_all_sessions()

session.close_all() 已弃用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 2019-12-28
    • 2012-08-21
    • 1970-01-01
    • 2015-09-11
    • 1970-01-01
    • 2011-07-29
    相关资源
    最近更新 更多