src/main.rs
changed.
plume-models/src/config.rs
changed.
55 | 55 | } |
|
56 | 56 | ||
57 | 57 | let manager = ConnectionManager::<Connection>::new(CONFIG.database_url.as_str()); |
|
58 | - | let pool = DbPool::builder() |
|
58 | + | let mut builder = DbPool::builder() |
|
59 | 59 | .connection_customizer(Box::new(PragmaForeignKey)) |
|
60 | - | .build(manager) |
|
61 | - | .ok()?; |
|
60 | + | .min_idle(CONFIG.db_min_idle); |
|
61 | + | if let Some(max_size) = CONFIG.db_max_size { |
|
62 | + | builder = builder.max_size(max_size); |
|
63 | + | }; |
|
64 | + | let pool = builder.build(manager).ok()?; |
|
62 | 65 | Instance::cache_local(&pool.get().unwrap()); |
|
63 | 66 | Some(pool) |
|
64 | 67 | } |
11 | 11 | pub base_url: String, |
|
12 | 12 | pub database_url: String, |
|
13 | 13 | pub db_name: &'static str, |
|
14 | + | pub db_max_size: Option<u32>, |
|
15 | + | pub db_min_idle: Option<u32>, |
|
14 | 16 | pub search_index: String, |
|
15 | 17 | pub rocket: Result<RocketConfig, RocketError>, |
|
16 | 18 | pub logo: LogoConfig, |
193 | 195 | var("ROCKET_PORT").unwrap_or_else(|_| "7878".to_owned()) |
|
194 | 196 | )), |
|
195 | 197 | db_name: DB_NAME, |
|
198 | + | db_max_size: var("DB_MAX_SIZE").map_or(None, |s| Some( |
|
199 | + | s.parse::<u32>() |
|
200 | + | .expect("Couldn't parse DB_MAX_SIZE into u32") |
|
201 | + | )), |
|
202 | + | db_min_idle: var("DB_MIN_IDLE").map_or(None, |s| Some( |
|
203 | + | s.parse::<u32>() |
|
204 | + | .expect("Couldn't parse DB_MIN_IDLE into u32") |
|
205 | + | )), |
|
196 | 206 | #[cfg(feature = "postgres")] |
|
197 | 207 | database_url: var("DATABASE_URL") |
|
198 | 208 | .unwrap_or_else(|_| format!("postgres://plume:plume@localhost/{}", DB_NAME)), |
Files | Coverage |
---|---|
plume-api/src | 0.00% |
plume-cli/src | 60.88% |
plume-common/src | 45.26% |
plume-models/src | -0.06% 53.54% |
src | -0.01% 3.97% |
plume-macro/src/lib.rs | 55.55% |
Project Totals (73 files) | 38.96% |
f452a07
e57296a
924fadd
f51fcce
180e34b