From 1a70477fc75760619f3872789321693e0fc6de7a Mon Sep 17 00:00:00 2001 From: Dessalines <dessalines@users.noreply.github.com> Date: Thu, 8 Apr 2021 07:19:58 -0400 Subject: [PATCH] Better DB default fields. (#1560) * Better DB default fields. * Fixing clippy --- crates/utils/src/settings/defaults.rs | 13 +++------- crates/utils/src/settings/mod.rs | 29 ++++++++------------- crates/utils/src/settings/structs.rs | 36 ++++++++++++++++++++++++--- src/main.rs | 9 ++----- 4 files changed, 49 insertions(+), 38 deletions(-) diff --git a/crates/utils/src/settings/defaults.rs b/crates/utils/src/settings/defaults.rs index 1ca15d24..3e7b344f 100644 --- a/crates/utils/src/settings/defaults.rs +++ b/crates/utils/src/settings/defaults.rs @@ -21,20 +21,15 @@ impl Default for Settings { } } -pub(in crate::settings) static DEFAULT_DATABASE_USER: &str = "lemmy"; -pub(in crate::settings) static DEFAULT_DATABASE_PORT: i32 = 5432; -pub(in crate::settings) static DEFAULT_DATABASE_DB: &str = "lemmy"; -pub static DEFAULT_DATABASE_POOL_SIZE: u32 = 5; - impl Default for DatabaseConfig { fn default() -> Self { Self { - user: Some(DEFAULT_DATABASE_USER.to_string()), + user: Some("lemmy".to_string()), password: "password".into(), host: "localhost".into(), - port: Some(DEFAULT_DATABASE_PORT), - database: Some(DEFAULT_DATABASE_DB.to_string()), - pool_size: Some(DEFAULT_DATABASE_POOL_SIZE), + port: Some(5432), + database: Some("lemmy".to_string()), + pool_size: Some(5), } } } diff --git a/crates/utils/src/settings/mod.rs b/crates/utils/src/settings/mod.rs index dfdfc593..406bf7de 100644 --- a/crates/utils/src/settings/mod.rs +++ b/crates/utils/src/settings/mod.rs @@ -1,16 +1,13 @@ use crate::{ location_info, - settings::{ - defaults::{DEFAULT_DATABASE_DB, DEFAULT_DATABASE_PORT, DEFAULT_DATABASE_USER}, - structs::{ - CaptchaConfig, - DatabaseConfig, - EmailConfig, - FederationConfig, - RateLimitConfig, - Settings, - SetupConfig, - }, + settings::structs::{ + CaptchaConfig, + DatabaseConfig, + EmailConfig, + FederationConfig, + RateLimitConfig, + Settings, + SetupConfig, }, LemmyError, }; @@ -63,15 +60,11 @@ impl Settings { let conf = self.database(); format!( "postgres://{}:{}@{}:{}/{}", - conf - .user - .unwrap_or_else(|| DEFAULT_DATABASE_USER.to_string()), + conf.user(), conf.password, conf.host, - conf.port.unwrap_or(DEFAULT_DATABASE_PORT), - conf - .database - .unwrap_or_else(|| DEFAULT_DATABASE_DB.to_string()), + conf.port(), + conf.database(), ) } diff --git a/crates/utils/src/settings/structs.rs b/crates/utils/src/settings/structs.rs index 05c7ed47..3863f6e3 100644 --- a/crates/utils/src/settings/structs.rs +++ b/crates/utils/src/settings/structs.rs @@ -27,12 +27,40 @@ pub struct CaptchaConfig { #[derive(Debug, Deserialize, Clone)] pub struct DatabaseConfig { - pub user: Option<String>, + pub(super) user: Option<String>, pub password: String, pub host: String, - pub port: Option<i32>, - pub database: Option<String>, - pub pool_size: Option<u32>, + pub(super) port: Option<i32>, + pub(super) database: Option<String>, + pub(super) pool_size: Option<u32>, +} + +impl DatabaseConfig { + pub fn user(&self) -> String { + self + .user + .to_owned() + .unwrap_or_else(|| DatabaseConfig::default().user.expect("missing user")) + } + pub fn port(&self) -> i32 { + self + .port + .unwrap_or_else(|| DatabaseConfig::default().port.expect("missing port")) + } + pub fn database(&self) -> String { + self.database.to_owned().unwrap_or_else(|| { + DatabaseConfig::default() + .database + .expect("missing database") + }) + } + pub fn pool_size(&self) -> u32 { + self.pool_size.unwrap_or_else(|| { + DatabaseConfig::default() + .pool_size + .expect("missing pool_size") + }) + } } #[derive(Debug, Deserialize, Clone)] diff --git a/src/main.rs b/src/main.rs index 0e3cb49f..8cda9ff4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -16,7 +16,7 @@ use lemmy_routes::{feeds, images, nodeinfo, webfinger}; use lemmy_server::{api_routes, code_migrations::run_advanced_migrations, scheduled_tasks}; use lemmy_utils::{ rate_limit::{rate_limiter::RateLimiter, RateLimit}, - settings::{defaults::DEFAULT_DATABASE_POOL_SIZE, structs::Settings}, + settings::structs::Settings, LemmyError, }; use lemmy_websocket::{chat_server::ChatServer, LemmyContext}; @@ -38,12 +38,7 @@ async fn main() -> Result<(), LemmyError> { }; let manager = ConnectionManager::<PgConnection>::new(&db_url); let pool = Pool::builder() - .max_size( - settings - .database() - .pool_size - .unwrap_or(DEFAULT_DATABASE_POOL_SIZE), - ) + .max_size(settings.database().pool_size()) .build(manager) .unwrap_or_else(|_| panic!("Error connecting to {}", db_url)); -- 2.44.1