问题是当我输入这样的代码时。
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
错误。以下官方入门自述文件。这也适用于该query_as
方法。我怀疑由于某种原因编译器没有“看到”sqlx::Query
特征方法,但我不知道如何将它们纳入范围。
虽然当我使用宏时sqlx::query!
,.fetch_all
确实存在。
此外,rust-analyzer
LSP 告诉我data
变量的类型是 存在一个不便std::result::Result<[type error], [type error]>
,这消除了使用自动完成和类型检查的任何可能性,除了运行(众所周知的慢)锈编译器。
PS 我使用 PostgreSQL 作为数据库解决方案,如果有帮助的话。
PSS env 变量 DATABASE_URL 在编译时设置并且是正确的,因此宏会执行所有编译时验证工作。