Не удалось передать флаги DATABASE_URL и ИМЕНИ ЯЧЕЙКИ для подготовки груза к sqlx в автономном режиме

#postgresql #rust #rust-cargo #sqlx

Вопрос:

Я пытаюсь запустить базу данных postgres в автономном режиме sqlx cli , используя команду sqlx prepare , чтобы подготовить sqlx-data.json файл к автономной работе в соответствии с этими инструкциями:

https://github.com/launchbadge/sqlx/blob/master/sqlx-cli/README.md#enable-building-in-offline-mode-with-query

Я установил эту переменную среды SQLX_OFFLINE=true в своем .env файле и получаю следующую ошибку и передаю --database-url примерно так:

 ✦ ❯ cargo sqlx prepare -- --bin my-project --database-url postgres://postgres@localhost?db_name=postgresamp;user=postgresamp;password=postgres 
[1] 13748
[2] 13749
[2]   Done                    user=postgres

✦2 ❯ error: The following required arguments were not provided:
    --database-url <database-url>

USAGE:
    cargo sqlx prepare <args>... --database-url <database-url>

For more information try --help
^C^C
 

Меня это смущает, потому что команда, похоже, выполнена успешно, а затем, через несколько секунд, я получаю сообщение об ошибке.

Меня явно просят предоставить корзину, и мне интересно, как предоставить и a database-url , и a bin name . Похоже, я могу работать только с одним или другим, но получаю ошибки для обоих?

 ✦ ❯ error: extra arguments to `rustc` can only be passed to one target, consider filtering
the package by passing, e.g., `--lib` or `--bin NAME` to specify a single target
error: `cargo check` failed with status: exit status: 101
cargo sqlx prepare --database-url postgres://postgres@localhost?db_name=postgresamp;user=postgresamp;password=postgres
[1]   Exit 1                  cargo sqlx prepare --database-url postgres://postgres@localhost?db_name=postgres
[1] 14236
[2] 14237
[2]   Done                    user=postgres

✦2 ❯ error: extra arguments to `rustc` can only be passed to one target, consider filtering
the package by passing, e.g., `--lib` or `--bin NAME` to specify a single target
error: `cargo check` failed with status: exit status: 101
^C
[1]   Exit 1                  cargo sqlx prepare --database-url postgres://postgres@localhost?db_name=postgres

 

Любая помощь будет очень признательна. Заранее спасибо!

Ответ №1:

sqlx использует ваш файл .env для анализа DATABASE_URL, поэтому вам не нужно передавать его при запуске cargo sqlx prepare , если он там установлен.