问题标签 [asyncpg]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
370 浏览

python - asyncpg 异常 DataError 查询参数的输入无效

我的模型

我的观点

当被问及我得到错误

我想使用 sqlalchemy 编写查询。但是,我在使用 Geometry 字段时遇到了问题。我尝试使用模块重复此func查询sqlalchemy。即使有了它,我也会收到此错误。

0 投票
0 回答
1577 浏览

docker - 无法启动 FastAPI 服务器,asyncpg 中的错误

编辑:原来有很多不同的错误。如果您遇到类似的问题,您可能错误地配置了数据库中的某些内容——例如在某处暴露了错误的端口。

这是我第一次在这里使用几乎所有堆栈。我不确定什么是相关的,所以我会尽力提供所有信息。

我正在通过 docker-compose 在 DigitalOcean 液滴上构建带有附加 Postgres db 的 FastAPI 应用程序。它在我的本地机器上运行良好,但无法在 DigitalOcean 上运行(它在 AWS 上以同样的方式失败,所以我猜这不是服务器问题)。

这是 Dockerfile:

这是 docker-compose 文件:

在Droplet(Ubuntu 20)上复制文件并安装docker之后,这里是整个控制台:

0 投票
1 回答
510 浏览

python - asyncpg 中的 fetchval 是否适用于 sql 注入?

asyncpg 中的 fetchval 是否适用于 sql 注入?

https://magicstack.github.io/asyncpg/current/api/index.html?highlight=fetch#asyncpg.connection.Connection.fetch

谢谢你的回答。

0 投票
0 回答
294 浏览

python - postgres DB 中的大 INSERTS 的 asyncpg 问题

在 postgres 中,我试图将大量数据从一个表插入到另一个表 - 大约 3000 万条记录。完成整个过程大约需要 40 分钟,所以我考虑将插入分成一系列 30 个较小的插入,并使用 asyncpg 之类的库异步执行它们。例如,每个 INSERT INTO... SELECT 需要 1.5 分钟来插入大约 100 万条记录,但是在使用 asyncpg 时,我没有看到任何异步行为。看起来好像 INSERTS 只是连续发生,一个接一个。示例,稍微简化,代码如下。任何人都可以发现我做错了什么或建议一种替代方法。甚至有可能做到这一点吗?在此先感谢您的帮助。

0 投票
1 回答
356 浏览

python - 带日期的 SQLAlchemy 文字引发:查询参数的输入无效(预期 str,得到日期)

将 SQLAlchemyliteraldate对象一起使用时,会引发异常。

演示

例外

为什么它期待一个str?

编辑

它适用于 MySQL,所以我的猜测是问题出在asyncpg中。

0 投票
3 回答
1813 浏览

python - 强制编码/数据库使用 asyncpg 而不是 psycopg2

最近,我正在尝试将编码/数据库包与我的 postgres 数据库一起使用。我都做对了。但是当我用 uvicorn 运行它时,我看到它告诉我 psycopg2 没有安装。我不想使用 psycopg2。所以,我重述了所有并运行databases[postgresql]而不是databases只运行。我也安装了asyncpg。但我仍然看到同样的错误。我也在虚拟环境中做所有事情。我的代码附在下面:

回溯是:

从上面的错误我认为包数据库正在尝试使用 psycopg2 而不是 asyncpg。在那种情况下,我如何强制数据库包使用 asyncpg 而不是 psycopg2。如果不是这种情况,我该如何使用 asyncpg 而不是使用 psycopg2?

提前致谢。

我的问题可能有一些错误。请忽略那些愚蠢的错误,如果您在我的问题中发现任何错误,请编辑问题

0 投票
0 回答
136 浏览

database - 为什么要使用异步数据库连接?

我只是想知道,为什么会使用异步 DB 连接。从我的角度来看,最好调整查询和模式,也许乍一看重新考虑你的索引。

  1. 据我了解,db 的执行时间不应超过几毫秒。

  2. 连接拉动可以解决长连接问题(如果有隧道,则持续 ping)

  3. 如果您的代码有异步部分,那么所有代码​​也应该是异步的。

    3.1 不要忘记,如果你对它有一点经验,异步的健壮性较差,更容易出错。

    3.2 由于循环性质,默认情况下,异步代码在单次执行中更长。

任何非常长的计算,能够处理业务逻辑中的长网络 - 最好以旧方式完成 - 由单独的队列。因为无论如何您都会失去对请求执行时间的控制。那么到底有什么意义呢?

我可能会遗漏一些东西,但是。

据我所知,Tornado 创造者 (@bdarnell) 总是这么说。如果我错了,请纠正我。

0 投票
1 回答
320 浏览

python - 使用 asyncpg 时如何修复异步代码锁定

这是我正在使用的示例代码。我想快速解析页面并将结果数据输入数据库。但是,添加一行后,我的代码开始运行明显变慢。我了解这与数据库的工作有关。但我不明白如何解决它。

如果您对加速此代码有任何其他建议,我将不胜感激。

0 投票
0 回答
187 浏览

postgresql - 是否可以使用 Asyncpg 与 postgresql 数据库建立 SSL 连接?

几天来,我一直在尝试在 heroku 上部署一个不和谐的机器人,我使用托管在 aws 上的 postgresql 数据库和 heroku postgres。我在尝试使用 asyncpg 将 ssl 连接到数据库时遇到了很多问题,我可以在互联网上找到一些问题的解决方案,但我现在遇到了这个错误:

2020-12-28T10:33:11.856268+00:00 app[worker.1]: raise exceptions.InterfaceError(

2020-12-28T10:33:11.856403+00:00 app[worker.1]: asyncpg.exceptions._base.InterfaceError: `ssl` parameter can only be enabled for TCP addresses, got a UNIX socket path: '/run/postgresql/.s.PGSQL.5432'

这就是我连接到数据库的方式:

在尝试在 Heroku 上部署我的代码时,我不知道为什么会出现该错误。我从我的电脑上运行它没有这个问题.. 试图阅读 asyncpg 文档,但结果并不多。我不知道它为什么使用 unix 套接字并且并不真正了解它是如何工作的,但我读过 asyncpg 现在应该支持 ssl 连接......你认为有办法让这个工作,或者我应该切换到 psycopg2 吗?

0 投票
1 回答
1436 浏览

python - 带有异步引擎的外部事务中的会话

我正在尝试使用异步API 和pytest.

首先,我尝试将zzzeekunittest的示例转换为,效果很好pytest

然后我尝试使用0.14.0 版切换到asyncioAPIpytest-asyncio

但是,这会失败"FAILED test_thing_two_pytest - assert 8 == 3",因为在第一次测试之后的事务回滚teardown不会恢复到setup阶段中创建的 SAVEPOINT。

由于我对 sqlalchemy 内部知识的了解不是很好,因此我正在寻求帮助来设置它,因为这对我的测试套件性能至关重要。

难道缺少async事件侦听器和定义restart_savepointAsyncSession.sync_session不够的,只需要等待 1.4 API 的稳定版本吗?

谢谢!