Skip to main content

ttrackr/db/
mod.rs

1pub mod models;
2pub mod ops;
3pub mod schema;
4pub mod utils;
5
6use crate::config::Config;
7use crate::utils::BoxError;
8
9use diesel::prelude::*;
10
11embed_migrations!();
12
13pub fn get_connection(config: &Config) -> Result<SqliteConnection, BoxError> {
14    establish_connection(config.database.get("path").unwrap())
15}
16
17pub fn establish_connection(dbpath: &str) -> Result<SqliteConnection, BoxError> {
18    let conn = SqliteConnection::establish(dbpath)
19        .unwrap_or_else(|_| panic!("Error connecting to {}", dbpath));
20
21    // This will run the necessary migrations.
22    embedded_migrations::run_with_output(&conn, &mut std::io::stdout())?;
23
24    Ok(conn)
25}