Rust 当我的密码包含at符号(@)时,如何指定Diesel数据库URL?

Rust 当我的密码包含at符号(@)时,如何指定Diesel数据库URL?,rust,rust-diesel,Rust,Rust Diesel,我开始使用柴油机时,遵循他们的方法。我还安装了PostgreSQL。我的数据库用户名是postgres,密码是1schoollife@ 我从 $echo数据库\u URL=postgres://postgres:1schoollife@@localhost/diesel\u demo>.env $diesel设置 结果: 在以下位置创建迁移目录:/home/naufil/Desktop/rust/3june/testing/migrations 创建数据库:diesel_演示 数据库“dies

我开始使用柴油机时,遵循他们的方法。我还安装了PostgreSQL。我的数据库用户名是
postgres
,密码是
1schoollife@

我从

$echo数据库\u URL=postgres://postgres:1schoollife@@localhost/diesel\u demo>.env
$diesel设置
结果:

在以下位置创建迁移目录:/home/naufil/Desktop/rust/3june/testing/migrations
创建数据库:diesel_演示
数据库“diesel_demo”已存在
我创建了一个迁移:

$diesel迁移生成创建帖子
创建迁移/2019-06-03-182531_创建_帖子/up.sql
创建迁移/2019-06-03-182531_创建_帖子/down.sql
迁移数据库时出现以下错误:

$diesel迁移运行
线程'main'在'Err'值上调用'Result::unwrap()'(BadConnection(“无法将主机名\“@localhost\”转换为地址:名称或服务未知\n”)、src/libcore/Result.rs:997:5时惊慌失措
注意:使用'RUST_BACKTRACE=1'环境变量运行以显示回溯。

您提供的
数据库URL
不是您试图使用的URL
@
是一个特殊字符,用于将凭据与主机名分开。由于您的凭据包含
@
,因此需要对其进行URL转义:

postgres://postgres:1schoollife%40@localhost/diesel\u演示
柴油机维修人员:

是的,百分编码对我们来说是100%正确的

这项措施于2004年实施