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

rust - 如何为 Diesel 中的自定义字段类型实现 Queryable 和 Insertable?

我有一个我想通过 Diesel 使用的 SQL 表:

此表生成以下架构:

Diesel 将小数导出为bigdecimal::BigDecimal,但我想decimal::d128改为使用。我也想映射record_type到一个枚举,所以我这样声明我的模型:

#derive(Queryable, Insertable)由于非标准类型映射,我无法使用,所以我尝试自己实现这些特征:

我无法弄清楚如何实施Insertable. Values关联类型是什么?Diesel 的文档对此并不十分清楚。

也许有更好的方法来实现我想要做的事情?

Cargo.toml

0 投票
1 回答
2521 浏览

mysql - 使用 Diesel 从 mySQL 数据库中检索日期时间

我无法使用 Rocket 和 Diesel 从填充的 mySQL 数据库中检索日期时间。

这是我的模型:

我的架构:

这会产生错误:

我该如何解决?我测试了一堆用途,比如diesel:mysql_typesrocket:config等等,似乎不是问题所在。

0 投票
1 回答
691 浏览

rust - Diesel 的属性 `primary_key` 目前对编译器来说是未知的

我正在尝试#[primarykey()]在 Diesel 中使用宏,但收到一个未知错误。根据我的发现,添加#![feature(primary_key)]应该可以解决问题,但事实并非如此。

库文件

模型.rs

我也试过在没有任何运气的情况下添加#![feature(primary_key)]到顶部。lib.rs

每晚使用 Rust 1.26.0 (80785a547 2018-03-30)

0 投票
1 回答
1507 浏览

rust - #[derive(Insertable)] 没有为 `std::string::String` 实现

我收到此错误:

当我尝试编译时struct

是因为它包含自定义enum还是Option<String>? 如果这是问题,我该如何解决?

0 投票
0 回答
211 浏览

rust - 为自定义类型实现 AsExpression 和 FromSqlRow

我在用:

该结构Payment包含一个自定义类型CentAmount。为了使包含结构可插入,我实现了

  • AsExpression
  • FromSqlRow

简化自定义类型的支持中所述:

结构体在这里使用

我仍然收到错误:

我错过了什么?

0 投票
0 回答
657 浏览

rust - Rust 中通配符/前奏导入的最佳实践是什么?

在 Rust 中,我们可以使用use module_name::*;语法从给定模块导入所有内容。虽然我可以看到这会导致更快的开发[1],但我喜欢 Python 的口头禅:“显式优于隐式”。虽然我当然可以看到implicit 的好处,但我对(嗯,它是一个显式导入,但它真的应该是一个通配符吗?)use std::prelude::*;感到不舒服。use diesel::prelude::*;

如果我使用明确的use diesel::{RunQueryDsl, ExpressionMethods, QueryDsl};或者我应该放弃并使用它可以use diesel::prelude::*;吗?

[1] 您不需要复制所有要导入的名称,也不需要为模块中的所有项目添加前缀module_name::

0 投票
0 回答
493 浏览

types - 是否有一个流程可以让我找出适合我的 Diesel 功能的正确类型?

我正在使用 Diesel 并希望将部分查询传递给函数并从函数返回部分查询。我正在努力制定我的功能签名。

我想按 ID 加载博客文章,但首先我想过滤它:

然后我将把它传递给另一个函数以按 ID 加载

这不起作用,因为我正在努力为Q. 编译器通常没有太大帮助(或者我不明白):

我已经多次提高递归限制无济于事。

同样,我想从一个函数中返回我常用的过滤器,所以我也需要找到这个类型。

虽然我确信有人可以告诉我要使用的正确类型,但我怎样才能逐步完成并自己找到它?我确信QueryDsl这是文档中正确的类型,我哪里出错了?

0 投票
1 回答
2372 浏览

sql - 如何使用 Diesel 计算数组列中不同元素的数量?

我正在尝试实现该count_distinct_labels函数以使用 Diesel 和 PostgreSQL 计算一列数组中的不同元素。

例如,我有一个这样的表:

在这种情况下,count_distinct_labels()应该是3,因为有 3 个唯一标签 ( 'foo', 'bar', 'baz')。

我发现下面的 SQL 返回了想要的结果,但我不知道如何将它翻译成 Diesel 表达式。

这是我的源代码:

和 Cargo.toml:

我还创建了一个包含完整示例的存储库。如果要复制,请克隆此 repo 和cargo run. 请注意,您必须在运行代码之前启动 Postgres 服务。

0 投票
1 回答
2354 浏览

rust - 在 Diesel 中关联三个表(多对多关系)的标准模式是什么?

数据库 - Postgres

我有以下关系:

架构:

楷模:

我想创建一个组织。为了支持这种关系,我必须手动将用户和组织的 ID 添加到 users_organizations 表中。有没有更好的方法来实现这种关系?

同样的问题在这里。如果选择与用户相关的所有组织(反之亦然),我想出了以下代码:

0 投票
1 回答
1510 浏览

rust - 为什么我的 Diesel 结构中的可选字段没有实现特征

我有这个结构:

以及以下实现:

这给了我以下错误: