* feat(cli): do not require db url
* chore: remove unused import
* fix(cli): do not always pass DATABASE_URL
* fix(cli): check db when DATABASE_URL is provided
Inlined format args make code more readable, and code more compact.
I ran this clippy command to fix most cases, and then cleaned up a few trailing commas and uncaught edge cases.
```
cargo clippy --bins --examples --benches --tests --lib --workspace --fix -- -A clippy::all -W clippy::uninlined_format_args
```
* cli: add --target-version CLI flags for migrate run/revert
* cli: fix broken test
* cli: test harness for `sqlx migrate` along with --target-version tests
* cli: Fail if version supplied to run/revert is too old/new
After some discussion with my coworkers, we thought about the behavior a bit more:
The behavior is now that for a run, if the provided version is too old, the CLI
will return with failure rather than being a no-op. This gives feedback to the
operator instead of being quiet.
It is still valid to up/downgrade to the latest version, this will still be a no-op
to allow for idempotency.
* Separate offline query metadata per crate
* Update sqlx-cli prepare to use separate query metadata per crate
* Add resolve.root to metadata test fixture
* Simplify root package resolution
* Fix prepare --merged
This fixes:
```
error[E0616]: field `target_directory` of struct `metadata::Metadata` is private
--> sqlx-cli/src/prepare.rs:175:47
|
175 | .env("CARGO_TARGET_DIR", metadata.target_directory.clone())
| ^^^^^^^^^^^^^^^^ private field
|
help: a method `target_directory` also exists, call it with parentheses
|
175 | .env("CARGO_TARGET_DIR", metadata.target_directory().clone())
| ++
```
* Move compiled query data
I did try to set rustc's --out-dir but encountered a strange error
stating that it can not be set more than once (even though I am unable
to deduce what else is setting it).
This enabled me to set a custom CARGO_TARGET_DIR and still be able to
prepare queries.
* Set CARGO_TARGET_DIR in the rustc invocation
* refactor(sqlx-cli): Try avoiding a full clean with `--merged`
* docs(sqlx-cli): Sprinkle some comments on the metadata changes
* refactor(sqlx-cli): Make the new recompiltion setup unit-testable
* fix(sqlx-cli): Only pass in `$RUSTFLAGS` when set when using `--merged`
* refactor(sqlx-cli): `cargo clean -p` works by name so rip out pkgid code
* chore(sqlx-cli): Remove unused imports
This patch enables having a top-level `sqlx-data.json` file within a
workspace.
It does this by using a full clean / check instead of `cargo rustc`
which fails on a workspace.
A `--merged` flag is introduced to switch to the workspace behavior
Fixes#353.
Signed-off-by: Joe Grund <jgrund@whamcloud.io>