mirror of
https://github.com/launchbadge/sqlx.git
synced 2025-10-02 15:25:32 +00:00

* use direct blocking calls for SQLite in `sqlx_macros` * this also ensures the database is closed properly, cleaning up tempfiles * don't send `PRAGMA journal_mode` unless set * this previously defaulted to WAL mode which is a permanent setting on databases which doesn't necessarily apply to all use-cases * changing into or out of WAL mode acquires an exclusive lock on the database that can't be waited on by `sqlite3_busy_timeout()` * for consistency, `sqlx-cli` commands that create databases will still create SQLite databases in WAL mode; added a flag to disable this. * in general, don't send `PRAGMA`s unless different than default * we were sending a bunch of `PRAGMA`s with their default values just to enforce an execution order on them, but we can also do this by inserting empty slots for their keys into the `IndexMap` * add error code to `SqliteError` printout * document why `u64` is not supported
Running Tests
SQLx uses docker to run many compatible database systems for integration testing. You'll need to install docker to run the full suite. You can validate your docker installation with:
$ docker run hello-world
Start the databases with docker-compose
before running tests:
$ docker-compose up
Run all tests against all supported databases using:
$ ./x.py
If you see test failures, or want to run a more specific set of tests against a specific database, you can specify both the features to be tests and the DATABASE_URL. e.g.
$ DATABASE_URL=mysql://root:password@127.0.0.1:49183/sqlx cargo test --no-default-features --features macros,offline,any,all-types,mysql,runtime-async-std-native-tls