Как настроить DB-соединение из окружения в Rocket (Rust)? - PullRequest
0 голосов
/ 02 февраля 2020

У меня есть следующие настройки рабочего соединения для моего приложения Rocket:

main.rs:

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

Rocket.toml:

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

I хотел бы установить имя пользователя, пароль и имя базы данных из среды. Ожидалось, что это будет что-то вроде ROCKET_MY_DB=postgres://user:pass@localhost/my_db, но это не сработало. Не удалось найти соответствующий пример базы данных для Rocket.

Ответы [ 2 ]

0 голосов
/ 02 февраля 2020

После большого количества экспериментов (так как нет специфических c инструкций для базы данных, и я ожидал чего-то, что было бы больше похоже на стандартный подход: ENV_PARAM=conn_string, т.е. в Diesel), я наконец понял, что мне нужно разместить сложный объект в окружающую среду.

Решение этой уродливой строки:

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

0 голосов
/ 02 февраля 2020

Я хотел бы установить имя пользователя, пароль и имя базы данных из среды. Не удалось найти соответствующий пример для Rocket.

Главная страница библиотек do c

Rocket и Rocket настроена через Rocket Файл .toml и / или переменные окружения ROCKET_ {PARAM}. Для получения дополнительной информации о настройке Rocket см. Раздел конфигурации руководства, а также документацию модуля конфигурации.

Пример просто перейдите по ссылке:

Все параметры конфигурации, включая дополнительные, могут быть переопределены через переменные среды. Чтобы переопределить параметр конфигурации {param}, используйте переменную среды с именем ROCKET_ {PARAM}. Например, чтобы переопределить параметр конфигурации «порт», вы можете запустить приложение с помощью:

ROCKET_PORT=3721 ./your_application

?  Configured for development.
    => ...
    => port: 3721 ```
...