summaryrefslogtreecommitdiffstats
path: root/src/remote/database.rs
blob: 03973ca100cf60d5dce26397fa3c427085e6102d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
use diesel::pg::PgConnection;
use diesel::prelude::*;
use eyre::{eyre, Result};

use crate::settings::Settings;

#[database("atuin")]
pub struct AtuinDbConn(diesel::PgConnection);

// TODO: connection pooling
pub fn establish_connection(settings: &Settings) -> Result<PgConnection> {
    if settings.server.db_uri == "default_uri" {
        Err(eyre!(
            "Please configure your database! Set db_uri in config.toml"
        ))
    } else {
        let database_url = &settings.server.db_uri;
        let conn = PgConnection::establish(database_url)?;

        Ok(conn)
    }
}