问题标签 [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.
rust - 如何为 Diesel 中的自定义字段类型实现 Queryable 和 Insertable?
我有一个我想通过 Diesel 使用的 SQL 表:
此表生成以下架构:
Diesel 将小数导出为bigdecimal::BigDecimal
,但我想decimal::d128
改为使用。我也想映射record_type
到一个枚举,所以我这样声明我的模型:
#derive(Queryable, Insertable)
由于非标准类型映射,我无法使用,所以我尝试自己实现这些特征:
我无法弄清楚如何实施Insertable
. Values
关联类型是什么?Diesel 的文档对此并不十分清楚。
也许有更好的方法来实现我想要做的事情?
Cargo.toml
:
mysql - 使用 Diesel 从 mySQL 数据库中检索日期时间
我无法使用 Rocket 和 Diesel 从填充的 mySQL 数据库中检索日期时间。
这是我的模型:
我的架构:
这会产生错误:
我该如何解决?我测试了一堆用途,比如diesel:mysql_types
,rocket:config
等等,似乎不是问题所在。
rust - Diesel 的属性 `primary_key` 目前对编译器来说是未知的
我正在尝试#[primarykey()]
在 Diesel 中使用宏,但收到一个未知错误。根据我的发现,添加#![feature(primary_key)]
应该可以解决问题,但事实并非如此。
库文件
模型.rs
我也试过在没有任何运气的情况下添加#![feature(primary_key)]
到顶部。lib.rs
每晚使用 Rust 1.26.0 (80785a547 2018-03-30)
rust - #[derive(Insertable)] 没有为 `std::string::String` 实现
我收到此错误:
当我尝试编译时struct
:
是因为它包含自定义enum
还是Option<String>
? 如果这是问题,我该如何解决?
rust - 为自定义类型实现 AsExpression 和 FromSqlRow
我在用:
该结构Payment
包含一个自定义类型CentAmount
。为了使包含结构可插入,我实现了
AsExpression
FromSqlRow
如简化自定义类型的支持中所述:
结构体在这里使用
我仍然收到错误:
我错过了什么?
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::
types - 是否有一个流程可以让我找出适合我的 Diesel 功能的正确类型?
我正在使用 Diesel 并希望将部分查询传递给函数并从函数返回部分查询。我正在努力制定我的功能签名。
我想按 ID 加载博客文章,但首先我想过滤它:
然后我将把它传递给另一个函数以按 ID 加载
这不起作用,因为我正在努力为Q
. 编译器通常没有太大帮助(或者我不明白):
我已经多次提高递归限制无济于事。
同样,我想从一个函数中返回我常用的过滤器,所以我也需要找到这个类型。
虽然我确信有人可以告诉我要使用的正确类型,但我怎样才能逐步完成并自己找到它?我确信QueryDsl
这是文档中正确的类型,我哪里出错了?
sql - 如何使用 Diesel 计算数组列中不同元素的数量?
我正在尝试实现该count_distinct_labels
函数以使用 Diesel 和 PostgreSQL 计算一列数组中的不同元素。
例如,我有一个这样的表:
在这种情况下,count_distinct_labels()
应该是3
,因为有 3 个唯一标签 ( 'foo', 'bar', 'baz'
)。
我发现下面的 SQL 返回了想要的结果,但我不知道如何将它翻译成 Diesel 表达式。
这是我的源代码:
和 Cargo.toml:
我还创建了一个包含完整示例的存储库。如果要复制,请克隆此 repo 和cargo run
. 请注意,您必须在运行代码之前启动 Postgres 服务。
rust - 在 Diesel 中关联三个表(多对多关系)的标准模式是什么?
数据库 - Postgres
我有以下关系:
架构:
楷模:
我想创建一个组织。为了支持这种关系,我必须手动将用户和组织的 ID 添加到 users_organizations 表中。有没有更好的方法来实现这种关系?
同样的问题在这里。如果选择与用户相关的所有组织(反之亦然),我想出了以下代码:
rust - 为什么我的 Diesel 结构中的可选字段没有实现特征
我有这个结构:
以及以下实现:
这给了我以下错误: