如何在Rocket环境中建立数据库连接?

SS_*_*ous 1 database settings rust rust-rocket

我的 Rocket 应用程序有以下工作数据库连接设置:

主要.rs:

#[database("my_db")]
pub struct DbConn(diesel::PgConnection);
Run Code Online (Sandbox Code Playgroud)

火箭.toml:

[global.databases]
my_db = { url = "postgres://user:pass@localhost/my_db" }
Run Code Online (Sandbox Code Playgroud)

我想从环境中设置用户名、密码和数据库名称。预计会是这样的ROCKET_MY_DB=postgres://user:pass@localhost/my_db,但没有成功。无法找到 Rocket 的相关数据库示例。

SS_*_*ous 10

经过大量实验(因为没有针对数据库的具体说明,并且我期望看起来更像标准方法的东西:ENV_PARAM=conn_string,即在 Diesel 中),我终于发现我需要将一个复杂的对象放置到环境中。

解决方案是这个丑陋的字符串:

ROCKET_DATABASES={my_db={url="postgres://user:pass@localhost/my_db"}}