Better DB default fields. (#1560)

* Better DB default fields.

* Fixing clippy
This commit is contained in:
Dessalines 2021-04-08 07:19:58 -04:00 committed by GitHub
parent 3a01949f81
commit 1a70477fc7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 49 additions and 38 deletions

View file

@ -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),
}
}
}

View file

@ -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(),
)
}

View file

@ -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)]

View file

@ -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));