Skip to main content

cala_server/cli/
db.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
4pub struct DbConfig {
5    #[serde(default)]
6    pub pg_con: String,
7    #[serde(default = "default_pool_size")]
8    pub pool_size: u32,
9}
10
11pub async fn init_pool(config: &DbConfig) -> anyhow::Result<sqlx::PgPool> {
12    let pool = sqlx::postgres::PgPoolOptions::new()
13        .max_connections(config.pool_size)
14        .connect(&config.pg_con)
15        .await?;
16
17    Ok(pool)
18}
19
20impl Default for DbConfig {
21    fn default() -> Self {
22        Self {
23            pg_con: "".to_string(),
24            pool_size: default_pool_size(),
25        }
26    }
27}
28
29fn default_pool_size() -> u32 {
30    20
31}