gpt4 book ai didi

postgresql - Rust sqlx : there is no query finalizers

转载 作者:行者123 更新时间:2023-12-03 11:27:11 31 4
gpt4 key购买 nike

问题是当我输入这样的代码时。

let data = sqlx::query("SELECT id, name FROM test")
.fetch_all(&pool)
.await;
我收到 no method named `fetch_all` found for struct `sqlx_core::query::Query<'_, _>` in the current scope错误。在官方 getting started readme之后。
这也适用于 query_as方法。我怀疑由于某种原因,编译器没有“看到” sqlx::Query特征方法,但是我不知道如何将它们纳入范围。
尽管当我使用宏 sqlx::query!时, .fetch_all确实存在。
另外, rust-analyzer LSP告诉我, data变量的类型为 std::result::Result<[type error], [type error]>带来了不便,这消除了运行自动编译(非常慢)除 rust 编译器之外的使用自动补全和类型检查的可能性。
P.S.我可以使用PostgreSQL作为数据库解决方案,如果有帮助的话。
P.S.S. env变量DATABASE_URL是在编译时设置的,并且是正确的,因此宏会执行所有编译时验证工作。

最佳答案

稍微浏览一下docs.rs,我发现sqlx::Query类型甚至没有fetch以外的终结器。至于sqlx::query_as,我一直在寻找的特征称为PgQueryAs,它实际上包含fetch_allfetch_optionalfetch_one等。并且添加use sqlx::postgress::PgQueryAs为我解决了这个问题。
尽管如此,我仍然不知道用于评估宏以在IDE中获得体面类型的解决方案。

关于postgresql - Rust sqlx : there is no query finalizers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63082682/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com