diff options
Diffstat (limited to 'src/db/mod.rs')
-rw-r--r-- | src/db/mod.rs | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/db/mod.rs b/src/db/mod.rs index f5facd1..1282f0c 100644 --- a/src/db/mod.rs +++ b/src/db/mod.rs @@ -1,6 +1,25 @@ +use anyhow::{Error, Result}; +use tokio_rusqlite::Connection; + pub mod categories; pub mod incomes; pub mod jobs; pub mod payments; pub mod users; -pub mod utils; +mod utils; + +pub async fn init(path: &str) -> Result<Connection> { + let connection = Connection::open(path).await.map_err(|err| { + Error::msg(format!("Error opening connection: {err}")) + })?; + + support_foreign_keys(&connection).await?; + + Ok(connection) +} + +async fn support_foreign_keys(conn: &Connection) -> Result<()> { + Ok(conn + .call(move |conn| Ok(conn.pragma_update(None, "foreign_keys", "ON"))) + .await??) +} |