minauthator/lib/kernel/src/database.rs
Matthieu Bessat 3713cc2443 refactor: structure of an hexagonal architecture
Created a kernel crate to store models and future action implementations.
Will be useful to create admin cli.
2024-12-01 21:51:16 +01:00

21 lines
620 B
Rust

use anyhow::{Context, Result};
use sqlx::{sqlite::{SqliteConnectOptions, SqlitePoolOptions}, ConnectOptions};
use std::str::FromStr;
use crate::repositories::storage::Storage;
pub async fn prepare_database(sqlite_db_path: &str) -> Result<Storage> {
let conn_str = format!("sqlite:{}", sqlite_db_path);
let pool = SqlitePoolOptions::new()
.max_connections(50)
.connect_with(
SqliteConnectOptions::from_str(&conn_str)?
.log_statements(log::LevelFilter::Trace)
)
.await
.context("could not connect to database_url")?;
Ok(Storage(pool))
}