Skip to content
Clone
a06673b
55 lines 1.6 KB Rust
use lombok::{Builder, Getter, Setter};
#[derive(serde::Deserialize, serde::Serialize, Clone, PartialEq, Eq, Getter, Setter, Builder)]
#[serde(default)]
pub struct AppDatabaseSettings {
pub primary: AppDatabaseConnConfig,
pub replicas: Vec<AppDatabaseConnConfig>,
pub max_connections_total: u32,
pub query_timeout: u64,
pub auto_migrate: bool,
pub sqlx_logging: bool,
pub slow_query_threshold_ms: u64,
}
#[derive(serde::Deserialize, serde::Serialize, Clone, PartialEq, Eq, Getter, Setter, Builder)]
#[serde(default)]
pub struct AppDatabaseConnConfig {
pub url: String,
pub max_connections: u32,
pub min_connections: u32,
pub max_lifetime: Option<u64>,
pub idle_timeout: Option<u64>,
pub acquire_timeout: Option<u64>,
pub schema: Option<String>,
pub application_name: Option<String>,
}
impl Default for AppDatabaseSettings {
fn default() -> Self {
Self {
primary: AppDatabaseConnConfig::default(),
replicas: vec![],
max_connections_total: 100,
query_timeout: 30,
auto_migrate: true,
sqlx_logging: false,
slow_query_threshold_ms: 500,
}
}
}
impl Default for AppDatabaseConnConfig {
fn default() -> Self {
Self {
url: String::new(),
max_connections: 20,
min_connections: 2,
max_lifetime: Some(1800),
idle_timeout: Some(600),
acquire_timeout: Some(5),
schema: None,
application_name: Some("gitdataai".to_string()),
}
}
}