问题标签 [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 投票
2 回答
113 浏览

rust - 在字符串中提取宏参数

我有以下宏:-

我怎样才能让这个宏在字符串中使用 $id 和 $key 的值?我不能format!query!预期只使用字符串文字

编辑; 连接!宏不工作

这给出了expected string literal错误。

0 投票
2 回答
2476 浏览

types - 如何创建一个同时接受 sqlx 数据库池和事务的 actix-web 服务器?

我正在尝试使用actix-websqlx设置一个 Web 应用程序,我可以在其中进行具有自己的 Web 服务器和数据库事务的测试。我尝试设置我的服务器创建,使其接受数据库(Postgres)池或使用Executor特征的事务。虽然我在编译应用程序代码和测试时遇到了一些问题:

编译输出

0 投票
1 回答
1447 浏览

rust - 如何在rocket.rs 中建立一个全局的postgres 池连接并使FromRequest 自定义守卫异步?

我正在制作一个授权系统,它将实现FromRequestweb 框架火箭的特征,这是制作自定义警卫所必需的。

我遇到的第一个问题是我必须如何使连接成为全球性的。我应该将它转换为常量,以便可以从实现中的函数访问它,还是火箭中的缓存或某种形式的存储PgPool可以访问连接(因为我使用的是 sqlx)& 可以进行查询.

我遇到的第二个问题是使 FromRequest 函数异步。由于 sqlx 是本机异步 afaik,我不知道火箭是否还支持这一点。我正在考虑制作一个 tokio 线程,或者是否有.then()Rust 的版本,但我不知道

0 投票
1 回答
744 浏览

rust - 如何将枚举的 Vec 定义为 rust sqlx 模型中的字段

我正在尝试将 Postgres 中的数组字段加载到 Rust 结构中,如下所示

根据 Array文档,我已经实现sqlx::TypeCoupon.

不过,编译器说,某些特征不满足。

我在这里想念什么?

我的 Cargo 文件具有以下依赖项

0 投票
0 回答
841 浏览

sql - Rust `sqlx` 抱怨缺少 trait 实现

我有以下插入查询:

编译器在每次调用时都会抱怨bind

sqlx文档清楚地列出了我的所有类型作为Encode.

为什么会这样?

0 投票
1 回答
528 浏览

postgresql - 使用 sqlx::postgres 和 i64 生锈

我是 Rust 的新手,正在尝试使用 sqlx 和 PostgresQL 实现 API。在阅读有关 PostgresQL 的信息时,它似乎不像u64MySQL 那样支持 . 因此,我已将代码更改为i64,如此处所述

然而,我的一些代码似乎仍然需要一个u64值:

代码示例:

它产生的错误:

我可能可以强制转换变量,但这可能会在运行时导致恐慌,那么处理它的正确方法是什么?

我已将此用作参考应用程序。

0 投票
1 回答
901 浏览

rust - 如何实现 sqlx::FromRow 特征?

我正在尝试手动实现sqlx::FrowRow而不是使用derive,因为需要一些自定义初始化逻辑(例如将整数转换i16为枚举)。

默认 impl 生成如下:

但目前尚不清楚,我应该使用什么生命周期和类型。

0 投票
0 回答
386 浏览

rust - rust sqlx 出现错误“等待打开连接时池超时”

使用脚本循环请求时sqlx报错

“等待打开连接时池超时”

这个游泳池在下面

这是我的代码

rust main.rs

测试脚本

ruby_send.rb

开始.shell

运行 start.shell 并没有响应请求

0 投票
0 回答
169 浏览

rust - 缓存 sqlx 池导致文件句柄溢出

我计划有一个使用 Sqlite 数据库作为数据文件的应用程序。因为可以更频繁地打开不同的文件,所以我想缓存连接。

我对 Rust 很陌生;这是我的第一个项目......我的问题是:当我用完文件句柄时,我无法创建新的数据库文件。

到目前为止我尝试了什么:

  • test1(),只有在我为 MyPool 实现 Drop 时才有效。Drop 将关闭连接池。通过这样做,我确信文件句柄会再次空闲。
  • test2(),是我的项目需要的异步版本(它将是一个 Rocket 应用程序)。在这里,我一点也不成功。

如果您运行代码,则必须在之后删除所有 db.* 文件。

0 投票
1 回答
120 浏览

rust - once_cell 的异步版本,或避免错误的方法[E0744]:在“静态”中不允许使用“.await”?

我一直在once_cell做很多只需要完成一次的工作,然后作为只读全局持久化。这很好,因为我不必传递这些东西。我想知道数据库句柄/池是否允许这样的事情?

但是,唉,这不起作用,.await因为

而且,如果我尝试换行once_cell,我会得到

无论如何在这里做我想做的事