问题标签 [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.
postgresql - 我在哪里可以获得 libpq 源?
我想编写使用 Postgresql 作为 DBMS 的应用程序。要编写客户端应用程序,我需要 libpq 库和头文件吗?如果是的话,我会在哪里获得 libpq 库和头文件。
rust - 将 Diesel 连接注入 Iron 中间件
在编写我的测试时,我希望能够将连接注入到请求中,以便我可以将整个测试用例包装在一个事务中(即使测试用例中有多个请求)。
我尝试使用BeforeMiddleware
可以在我的测试用例中链接以插入连接的方法来执行此操作,例如:
但是,我在尝试执行此操作时遇到编译错误:
有没有办法通过柴油机的连接来解决这个问题?我在 Github 上找到了几个使用pg
板条箱执行此操作的示例,但我想继续使用柴油。
postgresql - 使用 Postgres 在 Rust 的 Diesel 库中添加时间戳
我今天一直在按照这个演练查看 Rust 的Diesel ORM,但我无法工作。Timestamp
货运.toml
模型.rs
(我读到有一种diesel::types::Timestamp
类型)
库文件
但这些是我尝试使用它时遇到的错误:
看起来第一个错误Timestamptz
是因为infer_schema
不知道如何解释表中已经存在的 Postgresql 类型。至于第二个,我想也许如果显式导入该Timestamp
类型,我可以用它创建一个Post
结构。
我在这里做错了什么明显的事情吗?
顺便说一句,我对 Rust 很陌生,而 Diesel 使用了相当多的代码生成,所以很容易迷路,但我认为这应该是一件简单的事情。
编辑:
我曾经timestamp with time zone
创建表,看起来可能还不支持:
编辑2:
我将models.rs更改为如下所示,并摆脱了Timestamp
未定义的错误。我还意识到我需要#[derive(Queryable)]
在每个结构之上派生。以下编译正常,但之前的错误Timestamptz
仍然存在:
rust - Diesel 可以在运行时更改架构吗?
是否可以diesel
在运行时监听和更改其架构?例如,如果在运行时添加表,我们可以table!
在程序启动后检测更改并使用宏创建适当的表吗?
sql - 如何在 Diesel 中获取分层树结构?
我想使用 Diesel 创建一个 SQL 数据库。其中一个表将包含一个称为groups
分层树结构的东西:一个组可以是根组,也可以有一个父组。每个组都应该有一个unique_id
拥有它的用户和一个潜在的父母。
如何创建此结构,以便 Diesel 能够获取给定组下的整个树?如果可能的话,我将如何执行它?
我对 Web 开发很陌生,所以我不太了解如何实现我想要的。
rust - 无法开始使用diesel.rs 和Rust 1.16 nightly
我正在尝试通过直接从Diesel GitHub repo复制来遵循Diesel 入门指南,但我遇到了一些我无法修复的编译错误:examples/getting_started_step_3/
这是我的.env
:
我正在使用 Rust 1.16.0-nightly (df8debf6d 2017-01-25) 和 Diesel 0.9.0。
rust - 使用动态参数查询 Diesel 表
我开始研究使用 Diesel 来查询数据库。我有一个类似于下面结构的表格(这只是一个玩具项目,可帮助我了解 Diesel 的工作原理)。
例如,在编译时进行完全确定的查询很容易
我不清楚的是如何根据一些运行时参数构建查询,而不必回退到 SQL。例如JSONAPI允许动态选择字段并根据查询参数对其进行排序。我将如何在 Diesel 中做到这一点?
mysql - 使用 Diesel、r2d2 和 r2d2-diesel 查询数据库时出错
我已经使用连接池系统建立了一个系统,该系统利用柴油、r2d2和r2d2-diesel作为我的 Web 应用程序的 API 主机。我一直在关注这篇博客文章作为帮助我进行设置的基础。但是,我已经对我的数据库后端切换到 MySQL 进行了修改;我已经添加了必要的柴油功能,并认为这不是问题。
这是我用来设置连接池的代码(与博客文章中的非常相似):
我在设置数据库接口系统的过程中遇到了一个问题。当我通过柴油对数据库进行任何查询时,我收到以下错误:Err(DatabaseError(__Unknown, "Commands out of sync; you can\'t run this command now"))
我已经进行了一些研究,似乎在发送另一个查询之前尚未读取之前的查询时会发生此错误,这使我相信这可能是库错误。我检查了 MySQL 查询日志,除了在连接池中创建连接的查询之外,我没有看到任何查询。
我已经将我的错误减少到一个测试用例。以下响应我在上面粘贴的错误消息:
运行如下查询会产生相同的错误消息,但要简化为单个测试用例要困难得多:
我想这是我的一个实现错误,但这可能与我的数据库配置有关吗?我用于开发的数据库正在被超过 3 种语言和多个应用程序积极使用,没有问题,所以我对此表示怀疑。
rust - 将 Diesel 方法移动到其他目录
我正在遵循 Diesel 示例指南,我的项目看起来就像这样。我想更改它,以便cargo run --bin publish_post 1
您使用cargo run
并显示一个循环,提示您执行要运行的操作,而不是运行。
我已将所有内容移出bin/
和移入controllers/
目录。我想在main.rs
as中引用它use controllers::post
,所以我可以访问post::delete()
,等等。
一旦我将文件移出bin/
,所有导入都会中断。同样,我无法从lib.rs
.
为什么移动文件后我的所有导入都不起作用?我如何从这些文件中访问方法?
我想要这样的结构:
在 内main.rs
,我希望能够执行以下操作: