问题标签 [rust-sqlx]

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 回答
384 浏览

rust - 如何在 sqlx rust 中运行嵌套查询?

我想在 sqlx 中运行嵌套查询。这是我尝试过的:

但它给了我以下错误......

0 投票
1 回答
780 浏览

postgresql - Rust sqlx:没有查询终结器

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

我得到一个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-analyzerLSP 告诉我data变量的类型是 存在一个不便std::result::Result<[type error], [type error]>,这消除了使用自动完成和类型检查的任何可能性,除了运行(众所周知的慢)锈编译器。

PS 我使用 PostgreSQL 作为数据库解决方案,如果有帮助的话。

PSS env 变量 DATABASE_URL 在编译时设置并且是正确的,因此宏会执行所有编译时验证工作。

0 投票
1 回答
521 浏览

postgresql - 错误:无法连接到数据库:Rust 中的密码验证失败

我正在尝试使用sqlxcrate 和 Postgres 数据库连接到 Rust 中的数据库。

main.rs

这是我的.env文件:

错误日志:

笔记:

  1. 存在一个名为 的数据库twitter
  2. 我已经包含macros了 sqlx 的依赖项

我是否缺少用于连接数据库的某种级别的身份验证?我在宏的文档中找不到它sqlx::Query

0 投票
1 回答
723 浏览

rust - 有没有办法在 `sqlx::query!()" 中使用动态查询

上下文:rust,库 sqlx

问题:如何从较小的部分组成类似的查询,而不会丢失类型检查?

文档说:

查询必须是字符串文字,或者使用 + 连接字符串文字(对宏生成的查询很有用),否则它不能被内省(因此不能是动态的或另一个宏的结果)。

您可以看到它说“对宏生成的查询有用”(尽管稍后“不能是另一个宏的结果”)

我要解决的问题是,根据条件,我想运行不同但相似(例如,它们都有相同的列)查询,并且我想从较小的可重用部分组成查询[

0 投票
1 回答
1296 浏览

rust - 我们如何在 sqlx rust 中定义一个 jsonb 和 UUID 字段?

我有一个 Postgres 表,其中包含三个字段 ,id即一个字段和一个 uuid字段。bigserialmetajsonbUUID

我将sqlxORM 用于Rust. 虽然我明白我必须添加

在那之后我无法弄清楚如何进行

0 投票
0 回答
736 浏览

rust - 如何重用 sqlx::Executor?

我正在尝试使用 SQLX 在 Rust 中开发一个应用服务器作为后端存储。它适用于具有一些特殊默认行为的原始 CMS,即:如果找不到页面,则使用一些空白内容自动生成它。我希望能够重用调用 SQL 的函数,所以我希望它们采用实现sqlx::Executor特征的类型,包括&mut sqlx::Connection&mut sqlx::pool::PoolConnection&mut sqlx::Transaction.

每个调用数据库的函数都很好用

但是,似乎我无法重用执行程序。在我确定页面不存在后调用此函数;我创建了一个事务并使用 an&mut Transaction作为e参数调用它:

这就是 Rust (1.46) 所说的:

我知道e是参考,参考是Copy. 但我似乎无法让 Rust 相信这一点,我也不知道为什么。这是我在同一范围内使用impl Executor两次的唯一功能,但我相信随着时间的推移我会发现更多。请帮忙?

0 投票
1 回答
233 浏览

rust - 由于类型不匹配,sqlx 安装失败

我在 Ubuntu 18.04 上安装sqlx :

我得到错误

完整的日志

如何解决错误并完成安装?

GitHub问题

0 投票
1 回答
175 浏览

postgresql - 我无法捕获数据库引用

我正在尝试使用 Actix-web、async-grahpql 和 sqlx 和 postgresql 创建一个 API

QueryRootasync-graphql 中,我试图捕获数据库的引用并使用 sqlx 对数据库进行查询,但它给了我一个错误

在这里我想捕获参考

在这里我定义了引用

我究竟做错了什么?完整的代码可以在这里找到。

0 投票
1 回答
2833 浏览

mysql - 如何在 sqlx 中构建和提交多查询事务?

sqlx中有一种Transaction类型可以让您在一个事务中运行多个查询。

我试图弄清楚如何做到这一点,遗憾的是没有记录,尽管有自动生成的 API 文档。

我的第一次尝试:

产生以下错误:

我真的不知道从哪里开始考虑这个问题——但我无法从自动生成的 API 文档中找到答案。

0 投票
2 回答
283 浏览

rust - 如何在 Rust 中使用 `sqlx` 和 `juniper` 订阅?

背景:

我无法sqlxjuniper订阅集成。

Pin<Box<dyn Stream<Item = Result<User, sqlx::Error>> + 'e + Send>>sqlx::query::QueryAs::fetch().

juniper需要订阅返回为Pin<Box<dyn Stream<Item = Result<User, juniper::FieldError>> + Send>>.

注意从Result<User, sqlx::Error>到的变化Result<User, juniper::FieldError>。使用map_err()fromfutures::TryStreamExt,我创建了以下代码来执行查询并转换错误类型。

这在编译时失败并出现以下错误:

我对Streams 或生命周期不够熟悉,无法理解此错误的含义。在进一步研究之后,这似乎ref_e是订阅对juniper's的引用的生命周期Executor

尝试:

版本:

  • sqlx-0.4.1
  • junipercd66bdb固定承诺master