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 embedded_migrations::run_with_output(&conn, &mut std::io::stdout())?;
23
24 Ok(conn)
25}