我试图在离线模式下运行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
我已经在我的.env
文件中设置了这个环境变量SQLX_OFFLINE=true,并且得到了以下错误,并且像这样传递了--database-url
:
✦ ❯ cargo sqlx prepare -- --bin my-project --database-url postgres://postgres@localhost?db_name=postgres&user=postgres&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
我感到困惑,因为命令似乎成功了,然后几秒钟后,我得到一个错误信息。
我被明确要求提供一个bin,我想知道如何提供database-url
和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=postgres&user=postgres&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
任何帮助都将非常感激。提前感谢!
sqlx使用您的.env文件来解析DATABASE_URL,因此如果您在那里设置了cargo sqlx prepare
,则在运行时不需要传递它。