问题标签 [rust-diesel]

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 投票
1 回答
731 浏览

asynchronous - 总是返回 Ok HttpResponse 然后在 actix-web 处理程序中工作

我有一个处理程序来启动密码重置。它总是返回成功的 200 状态码,因此攻击者无法使用它来找出数据库中存储了哪些电子邮件地址。问题是,如果数据库中有一封电子邮件,则需要一段时间才能完成请求(阻止用户查找并发送带有重置令牌的实际电子邮件)。如果用户不在数据库中,请求会很快返回,因此被攻击者会知道电子邮件不存在。

在后台处理请求时,我将如何立即返回 HTTP 响应?

0 投票
2 回答
2186 浏览

rust - 如何在柴油中实现嵌套过滤器?

我对 Rust 和 Diesel 很陌生。我现在正在尝试为这样的查询实现 Diesel 过滤:

在文档和网络上进行一些搜索后,我仍然找不到如何执行此操作。我最接近的猜测是:

有人有想法吗?

谢谢!

0 投票
1 回答
360 浏览

mysql - 如何在柴油 model.rs 中用空格编写列名?

我正在尝试使用Diesel来管理我的数据库以供使用Rocket,但我一直在为我的表编写 models.rs:

在这里,我对如何在models.rs 的struct 中为带有空格的column_names 编写标识符感到困惑。

我指的是 Diesel 和 RUST 的官方指南。

0 投票
1 回答
420 浏览

mysql - diesel_cli 设置返回有关 DATABASE_URL 的错误

我正在尝试设置Diesel-CLI,但它总是返回一些关于DATABASE_URL的错误。

对于这个问题,我们假设:

  • 用户=根
  • 密码=#Abcd1234
  • 主机=本地主机
  • 数据库=codeforces
  • mysql服务器socket=/var/lib/mysql/mysql.sock/


错误:未知的 MySQL 服务器主机 'root' (-2)

错误:无法通过套接字'/run/mysql/mysql.sock'连接到本地MySQL服务器(2)

错误:用户 'root'@'localhost' 的访问被拒绝(使用密码:否)

错误:未知的 MySQL 服务器主机 'root' (-2)


我试过用谷歌搜索它,但到目前为止没有结果。我不知道我在哪里犯错误。

所以我的问题是:
如何解决这个错误?

0 投票
1 回答
335 浏览

caching - rust-diesel 上没有缓存

我使用 MySQL 作为我的数据库,并使用柴油来检索数据。数据每秒从多个端点更新。问题是在使用柴油检索数据时,我得到的结果已经过时(可能是由于柴油端的缓存)。MySQL 使用 运行SET GLOBAL query_cache_size = 0,因此数据库服务器端没有活动缓存。

这是我检索数据的代码部分:

你知道我怎样才能停用柴油机上的缓存吗?

0 投票
1 回答
62 浏览

sql - 如何使用 Diesel 在列中获取最小值的行?

如何使用 Diesel ORM 获得最小值的行?我希望它生成一个看起来像这样的查询

0 投票
1 回答
322 浏览

rust - 将柴油过滤器应用于单个表或加入?

我在运行时生成柴油过滤器(使用与此问题类似的方法)。我有一个make_filters为表生成过滤器的函数tunnel

我希望将这些过滤器应用于表tunneltunneland的连接connection。像这样:

但是当我尝试时,我得到了这个错误:

如果查询只是 ,这很好用tunnel::table.into_boxed(),所以我认为我需要概括make_filters.

这里的最小例子。

0 投票
1 回答
241 浏览

rust - Diesel:BoxableExpressions 通用表及其连接?

我正在尝试在运行时构建一些过滤器,这些过滤器可以应用于表格tunneltunnel LEFT OUTER JOIN connection ON (tunnel.id = connection.tunnel_id).

表定义如下:

我可以编写一个为单个表构造动态的函数:

或加入:

请注意,这两个过滤器函数具有完全相同的函数体,因此我应该能够创建一个通用函数来实现它们。但是当我尝试使其通用时出现错误。

错误是

此处的最小示例,您可以克隆该最小示例并cargo check自己运行以查看错误。

0 投票
2 回答
346 浏览

module - 引用兄弟模块(例如 Diesel 生成的模式)的正确方法是什么?

我正在构建一个使用 Diesel 访问 MySQL 数据库的 Web 服务。一切都设置正确,Diesel 正在生成schema.rs包含反映我的数据库模式的内容的文件:

我创建了一个store.rs位于main.rs. 如果我对模块的理解是正确的,那么我放入store.rs文件中的任何代码都将属于一个名为store该模块的子crate模块。我的目的是将所有处理数据库内容的代码放在store模块中。但是,我似乎无法useschema我的模块中的store模块开始使用 Diesel API 进行一些查询。

我试过了:

  • use schema;
  • use crate::schema;
  • use super::schema;
  • use super::schema::user;

没有任何效果。编译器总是说它无法解析路径的一部分或另一部分。

在 Rust 中引用兄弟模块的正确方法是什么?

0 投票
1 回答
236 浏览

mysql - 为什么 rustc 没有将 libmariadb 包含到发布二进制文件中?

我认为 rust 编译器使用静态绑定并在编译时包含所有依赖库(因此可执行文件大小)。

但是,当我尝试在带有 actix、mysql 客户端和启用了 mysql 功能的柴油机中使用已编译的二进制文件时,会弹出此错误:

我的码头文件:

我的货物:

但是如果我使用 ubuntu/debian/etc。图像作为运行时并安装libmariadb-dev-compat libmariadb-dev一切都很好。有没有办法在 Rust 中使用 mysql 连接器获得真正的单一二进制文件?