Created a kernel crate to store models and future action implementations. Will be useful to create admin cli.
21 lines
620 B
Rust
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))
|
|
}
|
|
|