Skip to content

Commit 0391aa2

Browse files
author
manuelarte
committed
Adding example diesel r2d2
1 parent 4a79e25 commit 0391aa2

File tree

3 files changed

+202
-0
lines changed

3 files changed

+202
-0
lines changed

Cargo.lock

Lines changed: 146 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[package]
2+
edition.workspace = true
3+
name = "embedded_async_diesel_r2d2"
4+
publish = false
5+
license.workspace = true
6+
version.workspace = true
7+
8+
[dependencies]
9+
postgresql_embedded = { path = "../../postgresql_embedded" }
10+
tokio = { workspace = true, features = ["full"] }
11+
diesel = { version = "2.2.1", features = ["postgres", "r2d2"] }
12+
r2d2_postgres = "0.18.1"
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
#![forbid(unsafe_code)]
2+
#![deny(clippy::pedantic)]
3+
4+
use diesel::r2d2::{ConnectionManager, Pool};
5+
use diesel::PgConnection;
6+
use postgresql_embedded::{PostgreSQL, Result, Settings, VersionReq};
7+
8+
#[tokio::main]
9+
async fn main() -> Result<()> {
10+
let settings = Settings {
11+
version: VersionReq::parse("=16.4.0")?,
12+
..Default::default()
13+
};
14+
let mut postgresql = PostgreSQL::new(settings);
15+
postgresql.setup().await?;
16+
postgresql.start().await?;
17+
18+
let database_name = "test";
19+
postgresql.create_database(database_name).await?;
20+
postgresql.database_exists(database_name).await?;
21+
22+
{
23+
let database_url = postgresql.settings().url(database_name);
24+
let manager = ConnectionManager::<PgConnection>::new(database_url);
25+
let _pool = Pool::builder()
26+
.test_on_check_out(true)
27+
.build(manager)
28+
.expect("Could not build connection pool");
29+
}
30+
31+
postgresql.drop_database(database_name).await?;
32+
33+
postgresql.stop().await
34+
}
35+
36+
#[cfg(test)]
37+
mod test {
38+
use super::*;
39+
40+
#[test]
41+
fn test_main() -> Result<()> {
42+
main()
43+
}
44+
}

0 commit comments

Comments
 (0)