python - 有没有办法测试 SQLAlchemy 连接?

标签 python pandas sqlalchemy

我正在使用 SQLAlchemy 连接以将 pandas DataFrame 写入 MySQL 数据库。在我的代码的早期,我创建了一个 SQLAlchemy 引擎:

engine = create_my_sqlalchemy_connection()

我执行一些查询,进行一些计算,稍后尝试使用相同的引擎写入数据库:

df.to_sql('my_table', engine, if_exists='append', index=False)

有时这行得通,但有时在代码准备好写入数据库时​​连接丢失,并出现错误。

我可以试一试,如果需要的话创建一​​个新的连接:

try:
    df.to_sql('my_table', engine, if_exists='append', index=False)
except:
    engine = create_my_sqlalchemy_connection()
    df.to_sql('my_table', engine, if_exists='append', index=False)

但是,我想我会伸出援手,看看是否有人知道更好的方法(例如,如果有一些我不知道的用于测试连接是否仍然存在的 SQLAlchemy 方法)。

最佳答案

您可以让 SQLAlchemy 使用参数 pool_pre_ping 检查连接的活跃度:https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.pool_pre_ping

if True will enable the connection pool “pre-ping” feature that tests connections for liveness upon each checkout.

只需在创建引擎时使用即可启用它。

关于python - 有没有办法测试 SQLAlchemy 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32929318/

相关文章:

python - 值错误: The shape of all parameters

python - 查找图中所有不存在的连接

python - 为什么这个 SQLAlchemy 示例将更改提交到数据库?

python - Django:如何通过 Django View 下载 .xls 文件

python - 向列表中的每个单独的字符串添加一个字符串

python - 与外部程序的多重处理 - 执行速度

python - tensorflow 2.0,调用函数时给定两个变量,但是定义函数时,没有变量

python - 根据索引获取行,然后创建另一个单独的数据框

python - 尝试通过中间表进行过滤

python - 如何从sqlalchemy中的查询中获取列表