diff options
author | Joris | 2025-02-06 21:15:32 +0100 |
---|---|---|
committer | Joris | 2025-02-06 21:15:32 +0100 |
commit | fedb4e7c7ebf21619f89c29d011e288363a978e9 (patch) | |
tree | a1caf36b68fc672bf8bc0740ee05dbb6770d02a6 /src/db/mod.rs | |
parent | 2956aa5f5324e4183dbc87f81fbc71fd0f43dbf9 (diff) |
Use anyhow Error
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??) +} |