#postgresql #rust #rust-cargo #sqlx
Вопрос:
Я пытаюсь запустить базу данных postgres в автономном режиме sqlx cli
, используя команду sqlx prepare
, чтобы подготовить sqlx-data.json
файл к автономной работе в соответствии с этими инструкциями:
Я установил эту переменную среды 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
, если он там установлен.