1

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

main.rs:

#[database("my_db")]
pub struct DbConn(diesel::PgConnection);

Rocket.toml:

[global.databases]
my_db = { url = "postgres://user:pass@localhost/my_db" }

我想从环境中设置用户名、密码和数据库名称。期望它是类似的东西ROCKET_MY_DB=postgres://user:pass@localhost/my_db,但它没有工作。无法找到 Rocket 的相关数据库示例。

4

2 回答 2

5

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

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

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

于 2020-02-02T07:49:19.060 回答
0

我想从环境中设置用户名、密码和数据库名称。没有找到 Rocket 的相关示例。

文档首页

Rocket 和 Rocket 库通过 Rocket.toml 文件和/或 ROCKET_{PARAM} 环境变量进行配置。有关如何配置 Rocket 的更多信息,请参阅指南的配置部分以及配置模块文档。

示例只需点击链接:

所有配置参数,包括附加参数,都可以通过环境变量覆盖。要覆盖配置参数 {param},请使用名为 ROCKET_{PARAM} 的环境变量。例如,要覆盖“端口”配置参数,您可以使用以下命令运行您的应用程序:

ROCKET_PORT=3721 ./your_application

  Configured for development.
    => ...
    => port: 3721 ```
于 2020-02-01T23:32:11.477 回答