summaryrefslogtreecommitdiffstats
path: root/src/state.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/state.rs')
-rw-r--r--src/state.rs15
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 })
}
}