我通过关注他们的official documentation开始使用Diesel。我也安装了PostgreSQL。我的数据库用户名是postgres
,密码是1schoollife@
。
我从
开始$ echo DATABASE_URL=postgres://postgres:1schoollife@@localhost/diesel_demo > .env
$ diesel setup
结果:
Creating migrations directory at: /home/naufil/Desktop/rust/3june/testing/migrations
Creating database: diesel_demo
database "diesel_demo" already exists
我创建了一个迁移:
$ diesel migration generate create_posts
Creating migrations/2019-06-03-182531_create_posts/up.sql
Creating migrations/2019-06-03-182531_create_posts/down.sql
迁移数据库时出现以下错误:
$ diesel migration run
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ConnectionError(BadConnection("could not translate host name \"@localhost\" to address: Name or service not known\n"))', src/libcore/result.rs:997:5
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
答案 0 :(得分:2)
您提供的DATABASE_URL
不是您尝试使用的URL。 @
是一个特殊字符,用于将凭据与主机名分开。由于您的凭据包含@
,因此需要对URL进行转义:
postgres://postgres:1schoollife%40@localhost/diesel_demo
柴油机维护者sgrif said:
是的,百分比编码对我们来说是100%正确的事情。
这是在PR 1058
中实现的