* Better DB default fields.
* Fixing clippy
}
}
-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),
}
}
}
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,
};
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(),
)
}
#[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)]
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};
};
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));