首页 > 解决方案 > Pony orm 连接池

问题描述

使用带有postgres(aws rds)的python pony orm ...使用它来执行原始sql ...所以我围绕小马类创建了一个包装类来初始化数据库对象

self.db = Database()
self.db.bind(provider="postgres", user=self.username, password=self.password,
                host=self.hostname, database=self.database)

每次调用一个方法来执行原始 sql 查询(下一行)时,都会建立一个新连接。连接池何时启动

self.db.execute(query, query_args)

或者有没有办法设置连接池参数。

根据小马 orm 文档

连接池无需跟踪数据库连接。您在需要时拥有连接,当您完成交易后,连接将返回到池中。

但我看到每次进行选择调用时总是打开连接。例如:5 次通话导致 5 次连接。我怎样才能设置最大值。连接数?

标签: pythonpostgresql-11ponyorm

解决方案


正如 PonnyORM 的文档所说:

...
bind (provider, *args, **kwargs)
bind (*args, **kwargs) 将实体绑定到数据库。

参数: provider (str) – 数据库提供者的名称。数据库提供程序是一个位于 pony.orm.dbproviders 包中的模块。它知道如何使用特定的数据库。在数据库提供程序名称之后,您应该指定将传递给相应 DBAPI 驱动程序的 connect() 方法的参数。Pony 附带以下提供程序:“sqlite”、“postgres”、“mysql”、“oracle”、“cockroachdb”。此参数也可以用作关键字参数。

args –数据库驱动程序所需的参数。
kwargs –数据库驱动程序所需的参数。...

如果您使用 Psycopg,您可以查看此文档以在数据库设置中使用更多参数。我不确定 PonyORM 是否在其库中考虑了这个包的所有选项。


推荐阅读