mirror of https://github.com/rwf2/Rocket.git
Update 'sqlx' to '0.7'.
This commit is contained in:
parent
a174a0f487
commit
e581e3f98e
|
@ -21,7 +21,6 @@ deadpool_redis = ["deadpool-redis", "deadpool"]
|
||||||
sqlx_mysql = ["sqlx", "sqlx/mysql"]
|
sqlx_mysql = ["sqlx", "sqlx/mysql"]
|
||||||
sqlx_postgres = ["sqlx", "sqlx/postgres"]
|
sqlx_postgres = ["sqlx", "sqlx/postgres"]
|
||||||
sqlx_sqlite = ["sqlx", "sqlx/sqlite"]
|
sqlx_sqlite = ["sqlx", "sqlx/sqlite"]
|
||||||
sqlx_mssql = ["sqlx", "sqlx/mssql"]
|
|
||||||
sqlx_macros = ["sqlx/macros"]
|
sqlx_macros = ["sqlx/macros"]
|
||||||
# diesel features
|
# diesel features
|
||||||
diesel_postgres = ["diesel-async/postgres", "diesel-async/deadpool", "diesel", "deadpool"]
|
diesel_postgres = ["diesel-async/postgres", "diesel-async/deadpool", "diesel", "deadpool"]
|
||||||
|
@ -72,7 +71,7 @@ default-features = false
|
||||||
optional = true
|
optional = true
|
||||||
|
|
||||||
[dependencies.sqlx]
|
[dependencies.sqlx]
|
||||||
version = "0.6"
|
version = "0.7"
|
||||||
default-features = false
|
default-features = false
|
||||||
features = ["runtime-tokio-rustls"]
|
features = ["runtime-tokio-rustls"]
|
||||||
optional = true
|
optional = true
|
||||||
|
|
|
@ -62,7 +62,7 @@
|
||||||
//! #[get("/<id>")]
|
//! #[get("/<id>")]
|
||||||
//! async fn read(mut db: Connection<Logs>, id: i64) -> Option<Log> {
|
//! async fn read(mut db: Connection<Logs>, id: i64) -> Option<Log> {
|
||||||
//! sqlx::query("SELECT content FROM logs WHERE id = ?").bind(id)
|
//! sqlx::query("SELECT content FROM logs WHERE id = ?").bind(id)
|
||||||
//! .fetch_one(&mut *db).await
|
//! .fetch_one(&mut **db).await
|
||||||
//! .and_then(|r| Ok(Log(r.try_get(0)?)))
|
//! .and_then(|r| Ok(Log(r.try_get(0)?)))
|
||||||
//! .ok()
|
//! .ok()
|
||||||
//! }
|
//! }
|
||||||
|
@ -113,23 +113,20 @@
|
||||||
//! On shutdown, new connections are denied. Shutdown _does not_ wait for
|
//! On shutdown, new connections are denied. Shutdown _does not_ wait for
|
||||||
//! connections to be returned.
|
//! connections to be returned.
|
||||||
//!
|
//!
|
||||||
//! ## `sqlx` (v0.6)
|
//! ## `sqlx` (v0.7)
|
||||||
//!
|
//!
|
||||||
//! | Database | Feature | [`Pool`] Type | [`Connection`] Deref |
|
//! | Database | Feature | [`Pool`] Type | [`Connection`] Deref |
|
||||||
//! |----------|-----------------|----------------------|------------------------------------------|
|
//! |----------|-----------------|----------------------|------------------------------------------|
|
||||||
//! | Postgres | `sqlx_postgres` | [`sqlx::PgPool`] | [`sqlx::pool::PoolConnection<Postgres>`] |
|
//! | Postgres | `sqlx_postgres` | [`sqlx::PgPool`] | [`sqlx::pool::PoolConnection<Postgres>`] |
|
||||||
//! | MySQL | `sqlx_mysql` | [`sqlx::MySqlPool`] | [`sqlx::pool::PoolConnection<MySql>`] |
|
//! | MySQL | `sqlx_mysql` | [`sqlx::MySqlPool`] | [`sqlx::pool::PoolConnection<MySql>`] |
|
||||||
//! | SQLite | `sqlx_sqlite` | [`sqlx::SqlitePool`] | [`sqlx::pool::PoolConnection<Sqlite>`] |
|
//! | SQLite | `sqlx_sqlite` | [`sqlx::SqlitePool`] | [`sqlx::pool::PoolConnection<Sqlite>`] |
|
||||||
//! | MSSQL | `sqlx_mssql` | [`sqlx::MssqlPool`] | [`sqlx::pool::PoolConnection<Mssql>`] |
|
|
||||||
//!
|
//!
|
||||||
//! [`sqlx::PgPool`]: https://docs.rs/sqlx/0.6/sqlx/type.PgPool.html
|
//! [`sqlx::PgPool`]: https://docs.rs/sqlx/0.6/sqlx/type.PgPool.html
|
||||||
//! [`sqlx::MySqlPool`]: https://docs.rs/sqlx/0.6/sqlx/type.MySqlPool.html
|
//! [`sqlx::MySqlPool`]: https://docs.rs/sqlx/0.6/sqlx/type.MySqlPool.html
|
||||||
//! [`sqlx::SqlitePool`]: https://docs.rs/sqlx/0.6/sqlx/type.SqlitePool.html
|
//! [`sqlx::SqlitePool`]: https://docs.rs/sqlx/0.6/sqlx/type.SqlitePool.html
|
||||||
//! [`sqlx::MssqlPool`]: https://docs.rs/sqlx/0.6/sqlx/type.MssqlPool.html
|
|
||||||
//! [`sqlx::pool::PoolConnection<Postgres>`]: https://docs.rs/sqlx/0.6/sqlx/pool/struct.PoolConnection.html
|
//! [`sqlx::pool::PoolConnection<Postgres>`]: https://docs.rs/sqlx/0.6/sqlx/pool/struct.PoolConnection.html
|
||||||
//! [`sqlx::pool::PoolConnection<MySql>`]: https://docs.rs/sqlx/0.6/sqlx/pool/struct.PoolConnection.html
|
//! [`sqlx::pool::PoolConnection<MySql>`]: https://docs.rs/sqlx/0.6/sqlx/pool/struct.PoolConnection.html
|
||||||
//! [`sqlx::pool::PoolConnection<Sqlite>`]: https://docs.rs/sqlx/0.6/sqlx/pool/struct.PoolConnection.html
|
//! [`sqlx::pool::PoolConnection<Sqlite>`]: https://docs.rs/sqlx/0.6/sqlx/pool/struct.PoolConnection.html
|
||||||
//! [`sqlx::pool::PoolConnection<Mssql>`]: https://docs.rs/sqlx/0.6/sqlx/pool/struct.PoolConnection.html
|
|
||||||
//!
|
//!
|
||||||
//! On shutdown, new connections are denied. Shutdown waits for connections to
|
//! On shutdown, new connections are denied. Shutdown waits for connections to
|
||||||
//! be returned.
|
//! be returned.
|
||||||
|
@ -163,9 +160,9 @@
|
||||||
//!
|
//!
|
||||||
//! ```toml
|
//! ```toml
|
||||||
//! [dependencies.sqlx]
|
//! [dependencies.sqlx]
|
||||||
//! version = "0.6"
|
//! version = "0.7"
|
||||||
//! default-features = false
|
//! default-features = false
|
||||||
//! features = ["macros", "offline", "migrate"]
|
//! features = ["macros", "migrate"]
|
||||||
//!
|
//!
|
||||||
//! [dependencies.rocket_db_pools]
|
//! [dependencies.rocket_db_pools]
|
||||||
//! version = "=0.1.0-rc.3"
|
//! version = "=0.1.0-rc.3"
|
||||||
|
|
|
@ -253,10 +253,10 @@ mod sqlx {
|
||||||
let mut opts = config.url.parse::<Options<D>>().map_err(Error::Init)?;
|
let mut opts = config.url.parse::<Options<D>>().map_err(Error::Init)?;
|
||||||
specialize(&mut opts, &config);
|
specialize(&mut opts, &config);
|
||||||
|
|
||||||
opts.disable_statement_logging();
|
opts = opts.disable_statement_logging();
|
||||||
if let Ok(level) = figment.extract_inner::<LogLevel>(rocket::Config::LOG_LEVEL) {
|
if let Ok(level) = figment.extract_inner::<LogLevel>(rocket::Config::LOG_LEVEL) {
|
||||||
if !matches!(level, LogLevel::Normal | LogLevel::Off) {
|
if !matches!(level, LogLevel::Normal | LogLevel::Off) {
|
||||||
opts.log_statements(level.into())
|
opts = opts.log_statements(level.into())
|
||||||
.log_slow_statements(level.into(), Duration::default());
|
.log_slow_statements(level.into(), Duration::default());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,13 +52,6 @@ check_types_match!(
|
||||||
sqlx::pool::PoolConnection<sqlx::Sqlite>,
|
sqlx::pool::PoolConnection<sqlx::Sqlite>,
|
||||||
);
|
);
|
||||||
|
|
||||||
check_types_match!(
|
|
||||||
"sqlx_mssql",
|
|
||||||
sqlx_mssql,
|
|
||||||
sqlx::MssqlPool,
|
|
||||||
sqlx::pool::PoolConnection<sqlx::Mssql>,
|
|
||||||
);
|
|
||||||
|
|
||||||
check_types_match!(
|
check_types_match!(
|
||||||
"mongodb",
|
"mongodb",
|
||||||
mongodb,
|
mongodb,
|
||||||
|
|
|
@ -28,8 +28,8 @@ diesel = { version = "2.0.0", default-features = false, optional = true }
|
||||||
postgres = { version = "0.19", optional = true }
|
postgres = { version = "0.19", optional = true }
|
||||||
r2d2_postgres = { version = "0.18", optional = true }
|
r2d2_postgres = { version = "0.18", optional = true }
|
||||||
|
|
||||||
rusqlite = { version = "0.27.0", optional = true }
|
rusqlite = { version = "0.29.0", optional = true }
|
||||||
r2d2_sqlite = { version = "0.20.0", optional = true }
|
r2d2_sqlite = { version = "0.22.0", optional = true }
|
||||||
|
|
||||||
memcache = { version = "0.15", optional = true }
|
memcache = { version = "0.15", optional = true }
|
||||||
r2d2-memcache = { version = "0.6", optional = true }
|
r2d2-memcache = { version = "0.6", optional = true }
|
||||||
|
|
|
@ -523,6 +523,9 @@ help: the type constructed contains `{integer}` due to the type of the argument
|
||||||
| ^^^ this argument influences the type of `Some`
|
| ^^^ this argument influences the type of `Some`
|
||||||
note: tuple variant defined here
|
note: tuple variant defined here
|
||||||
--> $RUST/core/src/option.rs
|
--> $RUST/core/src/option.rs
|
||||||
|
|
|
||||||
|
| Some(#[stable(feature = "rust1", since = "1.0.0")] T),
|
||||||
|
| ^^^^
|
||||||
|
|
||||||
error[E0308]: mismatched types
|
error[E0308]: mismatched types
|
||||||
--> tests/ui-fail-stable/from_form.rs:203:33
|
--> tests/ui-fail-stable/from_form.rs:203:33
|
||||||
|
@ -542,6 +545,9 @@ help: the type constructed contains `&'static str` due to the type of the argume
|
||||||
| this argument influences the type of `Some`
|
| this argument influences the type of `Some`
|
||||||
note: tuple variant defined here
|
note: tuple variant defined here
|
||||||
--> $RUST/core/src/option.rs
|
--> $RUST/core/src/option.rs
|
||||||
|
|
|
||||||
|
| Some(#[stable(feature = "rust1", since = "1.0.0")] T),
|
||||||
|
| ^^^^
|
||||||
|
|
||||||
error[E0277]: the trait bound `bool: From<&str>` is not satisfied
|
error[E0277]: the trait bound `bool: From<&str>` is not satisfied
|
||||||
--> tests/ui-fail-stable/from_form.rs:209:23
|
--> tests/ui-fail-stable/from_form.rs:209:23
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
{
|
||||||
|
"db_name": "SQLite",
|
||||||
|
"query": "SELECT id, title, text FROM posts WHERE id = ?",
|
||||||
|
"describe": {
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"name": "id",
|
||||||
|
"ordinal": 0,
|
||||||
|
"type_info": "Int64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "title",
|
||||||
|
"ordinal": 1,
|
||||||
|
"type_info": "Text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "text",
|
||||||
|
"ordinal": 2,
|
||||||
|
"type_info": "Text"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parameters": {
|
||||||
|
"Right": 1
|
||||||
|
},
|
||||||
|
"nullable": [
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"hash": "11e3096becb72f427c8d3911ef4327afd9516143806981e11f8e34d069c14472"
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"db_name": "SQLite",
|
||||||
|
"query": "INSERT INTO posts (title, text) VALUES (?, ?)",
|
||||||
|
"describe": {
|
||||||
|
"columns": [],
|
||||||
|
"parameters": {
|
||||||
|
"Right": 2
|
||||||
|
},
|
||||||
|
"nullable": []
|
||||||
|
},
|
||||||
|
"hash": "3c289da9873097a11191dbedc5c78d86afd6a6d36771bfeb12f331abca6279cf"
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"db_name": "SQLite",
|
||||||
|
"query": "SELECT id FROM posts",
|
||||||
|
"describe": {
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"name": "id",
|
||||||
|
"ordinal": 0,
|
||||||
|
"type_info": "Int64"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parameters": {
|
||||||
|
"Right": 0
|
||||||
|
},
|
||||||
|
"nullable": [
|
||||||
|
false
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"hash": "4415c35941e52a981b10707fe2e1ceb0bad0e473701e51ef21ecb2973c76b4df"
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"db_name": "SQLite",
|
||||||
|
"query": "DELETE FROM posts",
|
||||||
|
"describe": {
|
||||||
|
"columns": [],
|
||||||
|
"parameters": {
|
||||||
|
"Right": 0
|
||||||
|
},
|
||||||
|
"nullable": []
|
||||||
|
},
|
||||||
|
"hash": "668690acaca0a0c0b4ac306b14d82aa1bee940f0776fae3f9962639b78328858"
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"db_name": "SQLite",
|
||||||
|
"query": "DELETE FROM posts WHERE id = ?",
|
||||||
|
"describe": {
|
||||||
|
"columns": [],
|
||||||
|
"parameters": {
|
||||||
|
"Right": 1
|
||||||
|
},
|
||||||
|
"nullable": []
|
||||||
|
},
|
||||||
|
"hash": "79301b44b77802e0096efd73b1e9adac27b27a3cf7bf853af3a9f130b1684d91"
|
||||||
|
}
|
|
@ -11,9 +11,9 @@ diesel = "2"
|
||||||
diesel_migrations = "2"
|
diesel_migrations = "2"
|
||||||
|
|
||||||
[dependencies.sqlx]
|
[dependencies.sqlx]
|
||||||
version = "0.6.0"
|
version = "0.7.0"
|
||||||
default-features = false
|
default-features = false
|
||||||
features = ["macros", "offline", "migrate"]
|
features = ["macros", "migrate"]
|
||||||
|
|
||||||
[dependencies.rocket_db_pools]
|
[dependencies.rocket_db_pools]
|
||||||
path = "../../contrib/db_pools/lib/"
|
path = "../../contrib/db_pools/lib/"
|
||||||
|
|
|
@ -1,81 +0,0 @@
|
||||||
{
|
|
||||||
"db": "SQLite",
|
|
||||||
"11e3096becb72f427c8d3911ef4327afd9516143806981e11f8e34d069c14472": {
|
|
||||||
"query": "SELECT id, title, text FROM posts WHERE id = ?",
|
|
||||||
"describe": {
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"name": "id",
|
|
||||||
"ordinal": 0,
|
|
||||||
"type_info": "Int64"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "title",
|
|
||||||
"ordinal": 1,
|
|
||||||
"type_info": "Text"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "text",
|
|
||||||
"ordinal": 2,
|
|
||||||
"type_info": "Text"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"parameters": {
|
|
||||||
"Right": 1
|
|
||||||
},
|
|
||||||
"nullable": [
|
|
||||||
false,
|
|
||||||
false,
|
|
||||||
false
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"3c289da9873097a11191dbedc5c78d86afd6a6d36771bfeb12f331abca6279cf": {
|
|
||||||
"query": "INSERT INTO posts (title, text) VALUES (?, ?)",
|
|
||||||
"describe": {
|
|
||||||
"columns": [],
|
|
||||||
"parameters": {
|
|
||||||
"Right": 2
|
|
||||||
},
|
|
||||||
"nullable": []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"4415c35941e52a981b10707fe2e1ceb0bad0e473701e51ef21ecb2973c76b4df": {
|
|
||||||
"query": "SELECT id FROM posts",
|
|
||||||
"describe": {
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"name": "id",
|
|
||||||
"ordinal": 0,
|
|
||||||
"type_info": "Int64"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"parameters": {
|
|
||||||
"Right": 0
|
|
||||||
},
|
|
||||||
"nullable": [
|
|
||||||
false
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"668690acaca0a0c0b4ac306b14d82aa1bee940f0776fae3f9962639b78328858": {
|
|
||||||
"query": "DELETE FROM posts",
|
|
||||||
"describe": {
|
|
||||||
"columns": [],
|
|
||||||
"parameters": {
|
|
||||||
"Right": 0
|
|
||||||
},
|
|
||||||
"nullable": []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"79301b44b77802e0096efd73b1e9adac27b27a3cf7bf853af3a9f130b1684d91": {
|
|
||||||
"query": "DELETE FROM posts WHERE id = ?",
|
|
||||||
"describe": {
|
|
||||||
"columns": [],
|
|
||||||
"parameters": {
|
|
||||||
"Right": 1
|
|
||||||
},
|
|
||||||
"nullable": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -26,7 +26,7 @@ struct Post {
|
||||||
async fn create(mut db: Connection<Db>, post: Json<Post>) -> Result<Created<Json<Post>>> {
|
async fn create(mut db: Connection<Db>, post: Json<Post>) -> Result<Created<Json<Post>>> {
|
||||||
// There is no support for `RETURNING`.
|
// There is no support for `RETURNING`.
|
||||||
sqlx::query!("INSERT INTO posts (title, text) VALUES (?, ?)", post.title, post.text)
|
sqlx::query!("INSERT INTO posts (title, text) VALUES (?, ?)", post.title, post.text)
|
||||||
.execute(&mut *db)
|
.execute(&mut **db)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
Ok(Created::new("/").body(post))
|
Ok(Created::new("/").body(post))
|
||||||
|
@ -35,7 +35,7 @@ async fn create(mut db: Connection<Db>, post: Json<Post>) -> Result<Created<Json
|
||||||
#[get("/")]
|
#[get("/")]
|
||||||
async fn list(mut db: Connection<Db>) -> Result<Json<Vec<i64>>> {
|
async fn list(mut db: Connection<Db>) -> Result<Json<Vec<i64>>> {
|
||||||
let ids = sqlx::query!("SELECT id FROM posts")
|
let ids = sqlx::query!("SELECT id FROM posts")
|
||||||
.fetch(&mut *db)
|
.fetch(&mut **db)
|
||||||
.map_ok(|record| record.id)
|
.map_ok(|record| record.id)
|
||||||
.try_collect::<Vec<_>>()
|
.try_collect::<Vec<_>>()
|
||||||
.await?;
|
.await?;
|
||||||
|
@ -46,7 +46,7 @@ async fn list(mut db: Connection<Db>) -> Result<Json<Vec<i64>>> {
|
||||||
#[get("/<id>")]
|
#[get("/<id>")]
|
||||||
async fn read(mut db: Connection<Db>, id: i64) -> Option<Json<Post>> {
|
async fn read(mut db: Connection<Db>, id: i64) -> Option<Json<Post>> {
|
||||||
sqlx::query!("SELECT id, title, text FROM posts WHERE id = ?", id)
|
sqlx::query!("SELECT id, title, text FROM posts WHERE id = ?", id)
|
||||||
.fetch_one(&mut *db)
|
.fetch_one(&mut **db)
|
||||||
.map_ok(|r| Json(Post { id: Some(r.id), title: r.title, text: r.text }))
|
.map_ok(|r| Json(Post { id: Some(r.id), title: r.title, text: r.text }))
|
||||||
.await
|
.await
|
||||||
.ok()
|
.ok()
|
||||||
|
@ -55,7 +55,7 @@ async fn read(mut db: Connection<Db>, id: i64) -> Option<Json<Post>> {
|
||||||
#[delete("/<id>")]
|
#[delete("/<id>")]
|
||||||
async fn delete(mut db: Connection<Db>, id: i64) -> Result<Option<()>> {
|
async fn delete(mut db: Connection<Db>, id: i64) -> Result<Option<()>> {
|
||||||
let result = sqlx::query!("DELETE FROM posts WHERE id = ?", id)
|
let result = sqlx::query!("DELETE FROM posts WHERE id = ?", id)
|
||||||
.execute(&mut *db)
|
.execute(&mut **db)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
Ok((result.rows_affected() == 1).then(|| ()))
|
Ok((result.rows_affected() == 1).then(|| ()))
|
||||||
|
@ -63,7 +63,7 @@ async fn delete(mut db: Connection<Db>, id: i64) -> Result<Option<()>> {
|
||||||
|
|
||||||
#[delete("/")]
|
#[delete("/")]
|
||||||
async fn destroy(mut db: Connection<Db>) -> Result<()> {
|
async fn destroy(mut db: Connection<Db>) -> Result<()> {
|
||||||
sqlx::query!("DELETE FROM posts").execute(&mut *db).await?;
|
sqlx::query!("DELETE FROM posts").execute(&mut **db).await?;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,7 +80,6 @@ function test_contrib() {
|
||||||
sqlx_mysql
|
sqlx_mysql
|
||||||
sqlx_postgres
|
sqlx_postgres
|
||||||
sqlx_sqlite
|
sqlx_sqlite
|
||||||
sqlx_mssql
|
|
||||||
mongodb
|
mongodb
|
||||||
diesel_mysql
|
diesel_mysql
|
||||||
diesel_postgres
|
diesel_postgres
|
||||||
|
|
|
@ -264,7 +264,7 @@ in three simple steps:
|
||||||
#[get("/<id>")]
|
#[get("/<id>")]
|
||||||
async fn read(mut db: Connection<Logs>, id: i64) -> Option<String> {
|
async fn read(mut db: Connection<Logs>, id: i64) -> Option<String> {
|
||||||
sqlx::query("SELECT content FROM logs WHERE id = ?").bind(id)
|
sqlx::query("SELECT content FROM logs WHERE id = ?").bind(id)
|
||||||
.fetch_one(&mut *db).await
|
.fetch_one(&mut **db).await
|
||||||
.and_then(|r| Ok(r.try_get(0)?))
|
.and_then(|r| Ok(r.try_get(0)?))
|
||||||
.ok()
|
.ok()
|
||||||
}
|
}
|
||||||
|
@ -294,9 +294,9 @@ features enabled in `Cargo.toml`:
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
[dependencies.sqlx]
|
[dependencies.sqlx]
|
||||||
version = "0.6"
|
version = "0.7"
|
||||||
default-features = false
|
default-features = false
|
||||||
features = ["macros", "offline", "migrate"]
|
features = ["macros", "migrate"]
|
||||||
|
|
||||||
[dependencies.rocket_db_pools]
|
[dependencies.rocket_db_pools]
|
||||||
version = "=0.1.0-rc.3"
|
version = "=0.1.0-rc.3"
|
||||||
|
|
Loading…
Reference in New Issue