问题标签 [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.
sql - 为什么 Diesel 在列指定长度时无法迁移 PostgresSQL 数据库?
当我使用 生成迁移时diesel migration generate customers
,如果up.sql
迁移文件夹中的文件不包含用于列长度的括号:
当我运行时diesel migration run --database-url=postgres://<info>
,它成功迁移了数据库。
为什么会出现以下情况:
引发错误:
我的 SQL 并不令人惊讶,因此我直接使用 ORM,但我相信 SQL 查询都是完全有效的,我不知道去哪里调试。
postgresql - 特性 `diesel::Expression` 没有为`bigdecimal::BigDecimal` 实现
我正在尝试创建一个可以在柴油中用于插入的结构。具体来说,我正在使结构可插入。编译时出现此错误。
我有一个试图Insertable
通过派生属性创建的结构。我有一个名为的字段Bounty
,它应该代表金钱,所以我使用BigDecimal
它作为类型。编译后,我得到标题中的错误。我也尝试过使用f64
,但这给出了同样的错误。
我在它自己的文件中有我的结构,这是整个代码。该结构Thread
编译没有问题。错误发生在InsertableThread
使用BigDecimal
. 这是导致的错误。
我正在使用 Rust 1.34、柴油 1.4.2 和 Postgres 11。
我愿意更改数据库、Postgres 或 Rust 代码中的类型。数据库numeric
在我尝试过的 Rust 代码中使用 andf64
和BigDecimal
. 我也愿意自己直接实现这个特征,但我需要一些关于如何做到这一点的指导,因为我找不到样本。
rust - 使用选项具有 Diesel 的可插入特性
我有以下模型:
和 schema.rs:
但是,当我尝试编译此代码时,出现以下错误:
我需要什么才能让它工作?我环顾四周,但我发现的唯一类似问题是当某人的表中有超过 16 列时,这里不是这种情况。
rust - 推断类型构造函数的类型
这似乎是一个具体的问题,但我会尽量概括它。随意编辑标题,因为我是 Rust 新手,不知道如何简洁地表达它。
我想做的最好用例子来解释。
我正在使用柴油并生成schema.rs
它定义了表格Cats
和Dogs
(使用table!
宏)。
现在我为和(我实现的2个结构)编写了get_all
函数Cat
Dog
但由于他们基本上做同样的事情,我很想用一种get_all<T>
方法来概括它们。
我想创造一个特征:
当然,我Resource
现在需要定义,要么是Cats
要么Dogs
。所以我想做一个解决方法并定义一个get_resource
我可以覆盖的方法Cat
并Dog
提供他们尊重的资源。这是类型diesel::query_dsl::RunQueryDsl<Conn>
。
问题是我不知道Conn
必须实现什么类型约束(然后是该类型的类型参数,等等),我认为应该有一种更简单的方法,然后从柴油逆向工程整个类型链。
这失败了expected 1 type argument
我的方法是否有“修复”(例如编译器自动推断类型)或者设计是否损坏?如果是后者,我该如何概括该get_all
方法?
PS:Queryable
trait 也是如此,它应该是 的约束T
,但又需要 2 个类型参数。
rust - FromSql::from_sql 的参数的生命周期是多少?
我将 Diesel 与 Postgres 一起使用,并希望将text
字段查询为*const str
. Diesel 实现FromSql
了*const str
.
该文档描述:
返回的指针仅在 的参数的生命周期内有效
from_sql
。
的论点的寿命是from_sql
多少?它与连接的生命周期相同吗?
rust - 当我的密码包含 at 符号 (@) 时,如何指定 Diesel DATABASE_URL?
我按照他们的官方文档开始使用 Diesel 。我也安装了 PostgreSQL。我的数据库用户名是postgres
,密码是1schoollife@
。
我从
结果:
我创建了一个迁移:
迁移数据库时出现以下错误:
rust - 如何使用 Diesel 在 sqlite 中存储任意 JSON 对象
我有一个输入 JSON:
我想将它存储在一个 sqlite 数据库中,以便稍后以完全相同的值响应一些 API 请求。
这是我的迁移:
我的Cargo.toml
:
使用以下代码:
我收到以下错误:
我可以创建一个带有String
JSON 表示的模型并为 API 输入类型派生From
/ Into
,但我现在不想.into()
在我的代码中到处插入。一个 DRY 解决方案将按照我在附加代码中提出的那样执行此操作。
json - 如何序列化 Template::render 的上下文
我正在尝试将 Handlebars 与 Rocket 和 Diesel 一起使用。不幸的是,我没有让这种组合起作用。
首先,我使用本教程构建了一个简单的 rest-API 。然后我尝试在不使用数据库连接的情况下测试车把模板。这部分效果很好。
接下来,我尝试了使用数据库连接的相同模板。如果我对模板的上下文部分使用与 API 中相同的方法,我会得到我不理解的编译器消息。如果 REST API 使用来自 serde 的 JSON,我希望输出应该是Serialize
.
故障功能:
结构:
数据库查询:
我希望编译成功。错误信息如下: