From cf9a59a13807eed26058ebdcd089b1d4ac35604d Mon Sep 17 00:00:00 2001 From: charles-gauthereau Date: Tue, 18 Aug 2026 13:07:22 +0200 Subject: [PATCH] fix: config.rs --- src/services/config.rs | 46 ++++++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 13 deletions(-) diff --git a/src/services/config.rs b/src/services/config.rs index b1a25cd..b58ae65 100644 --- a/src/services/config.rs +++ b/src/services/config.rs @@ -118,34 +118,54 @@ pub fn build_config(db: InputDatabaseConfig) -> Result { } let username = match db.db_type { - DbType::Postgresql | DbType::PostgresqlCluster | DbType::Mysql | DbType::Mariadb + DbType::Postgresql + | DbType::PostgresqlCluster + | DbType::Mysql + | DbType::Mariadb | DbType::Mssql => required(&db.username, &db.name, "username")?, _ => optional(&db.username), }; let password = match db.db_type { - DbType::Postgresql | DbType::PostgresqlCluster | DbType::Mysql | DbType::Mariadb + DbType::Postgresql + | DbType::PostgresqlCluster + | DbType::Mysql + | DbType::Mariadb | DbType::Mssql => required(&db.password, &db.name, "password")?, _ => optional(&db.password), }; let host = match db.db_type { - DbType::Postgresql | DbType::PostgresqlCluster | DbType::Mysql | DbType::Mariadb - | DbType::MongoDB | DbType::Redis | DbType::Firebird | DbType::Valkey | DbType::Mssql => { - required(&db.host, &db.name, "host")? - } + DbType::Postgresql + | DbType::PostgresqlCluster + | DbType::Mysql + | DbType::Mariadb + | DbType::MongoDB + | DbType::Redis + | DbType::Firebird + | DbType::Valkey + | DbType::Mssql => required(&db.host, &db.name, "host")?, DbType::Sqlite | DbType::DockerVolume => optional(&db.host), }; + let port = match db.db_type { - DbType::Postgresql | DbType::PostgresqlCluster | DbType::Mysql | DbType::Mariadb - | DbType::MongoDB | DbType::Redis | DbType::Firebird | DbType::Valkey | DbType::Mssql => { - required(&db.port, &db.name, "port")? - } - DbType::Sqlite | DbType::DockerVolume => db.port.unwrap_or(0), + DbType::Postgresql + | DbType::PostgresqlCluster + | DbType::Mysql + | DbType::Mariadb + | DbType::Redis + | DbType::Firebird + | DbType::Valkey + | DbType::Mssql => required(&db.port, &db.name, "port")?, + DbType::MongoDB | DbType::Sqlite | DbType::DockerVolume => db.port.unwrap_or(0), }; + let database_name = match db.db_type { DbType::Sqlite | DbType::Redis | DbType::Valkey | DbType::DockerVolume => { optional(&db.database) } - DbType::PostgresqlCluster => db.database.clone().unwrap_or_else(|| "postgres".to_string()), + DbType::PostgresqlCluster => db + .database + .clone() + .unwrap_or_else(|| "postgres".to_string()), _ => required(&db.database, &db.name, "database")?, }; let path_val = match db.db_type { @@ -238,7 +258,7 @@ impl ConfigService { info!("Databases: {} instances loaded", databases.len()); Ok(DatabasesConfig { databases }) } - + pub fn load_optional(&self, file_path: Option<&str>) -> DatabasesConfig { self.load(file_path).unwrap_or_else(|e| { tracing::warn!(