aboutsummaryrefslogtreecommitdiffstats
path: root/lib/warden-core/src/state/database.rs
blob: cf34484b3009087d64e1a3794cf48760984eba8e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use sqlx::PgPool;
use tracing::{debug, error};

use crate::{WardenError, config::cli::database::Database};

pub async fn connect(config: &Database) -> Result<PgPool, WardenError> {
    let url = config.get_url()?;
    let host = url.host_str();
    debug!(host = host, "connecting to database");

    Ok(sqlx::postgres::PgPoolOptions::new()
        .max_connections(config.database_pool_size.unwrap_or(10))
        .connect(url.as_str())
        .await
        .inspect_err(|e| error!("{e}"))?)
}