diff options
Diffstat (limited to 'src/state.rs')
-rw-r--r-- | src/state.rs | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/state.rs b/src/state.rs index efe2192..614688b 100644 --- a/src/state.rs +++ b/src/state.rs @@ -1,18 +1,19 @@ use sqlx::{postgres::PgPoolOptions, Pool, Postgres}; -use crate::Error; - +#[derive(Debug)] pub struct AppState { - pub db_pool: Pool<Postgres>, + pub pool: Pool<Postgres>, } impl AppState { - pub async fn new<S: AsRef<str>>(db_url: S) -> Result<Self, Error> { - let db_pool = PgPoolOptions::new() + pub async fn init(database_uri: &str) -> Result<Self, sqlx::Error> { + let pool = PgPoolOptions::new() .max_connections(10) - .connect(db_url.as_ref()) + .connect(database_uri) .await?; - Ok(Self { db_pool }) + sqlx::migrate!().run(&pool).await?; + + Ok(Self { pool }) } } |