drogue_bazaar/db/postgres/mod.rs
1//! Basic PostgreSQL support
2
3use crate::core::tls::ClientConfig;
4
5/// A Postgres pooled connection configuration
6#[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
7pub struct Config {
8 pub db: deadpool_postgres::Config,
9 #[serde(default)]
10 pub tls: ClientConfig,
11}
12
13impl Config {
14 /// Create a pool from a configuration.
15 pub fn create_pool(&self) -> anyhow::Result<deadpool_postgres::Pool> {
16 Ok(self.db.create_pool(
17 Some(deadpool_postgres::Runtime::Tokio1),
18 postgres_native_tls::MakeTlsConnector::new((&self.tls).try_into()?),
19 )?)
20 }
21}