From a284e93ae79354a071f23113af916e0b3c89cd47 Mon Sep 17 00:00:00 2001 From: Owen Jacobson Date: Fri, 20 Sep 2024 23:30:47 -0400 Subject: Put database prep somewhere tests can call it. --- src/repo/pool.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/repo/pool.rs (limited to 'src/repo/pool.rs') diff --git a/src/repo/pool.rs b/src/repo/pool.rs new file mode 100644 index 0000000..b4aa6fc --- /dev/null +++ b/src/repo/pool.rs @@ -0,0 +1,18 @@ +use std::str::FromStr; + +use sqlx::sqlite::{SqliteConnectOptions, SqlitePool, SqlitePoolOptions}; + +pub async fn prepare(url: &str) -> sqlx::Result { + let pool = create(url).await?; + sqlx::migrate!().run(&pool).await?; + Ok(pool) +} + +async fn create(database_url: &str) -> sqlx::Result { + let options = SqliteConnectOptions::from_str(database_url)? + .create_if_missing(true) + .optimize_on_close(true, /* analysis_limit */ None); + + let pool = SqlitePoolOptions::new().connect_with(options).await?; + Ok(pool) +} -- cgit v1.2.3