feat(server): configurable DB pool size via --db-max-connections/DB_MAX_CONNECTIONS (#2)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -42,4 +42,12 @@ pub struct Config {
|
||||
/// Meilisearch index name for catalogue objects.
|
||||
#[arg(long = "meili-index", env = "MEILI_INDEX", default_value = "objects")]
|
||||
pub meili_index: String,
|
||||
|
||||
/// Maximum size of the PostgreSQL connection pool.
|
||||
#[arg(
|
||||
long = "db-max-connections",
|
||||
env = "DB_MAX_CONNECTIONS",
|
||||
default_value_t = 5
|
||||
)]
|
||||
pub db_max_connections: u32,
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ use tokio::net::TcpListener;
|
||||
|
||||
/// Connect dependencies from `config` and serve until shutdown.
|
||||
pub async fn run(config: Config) -> anyhow::Result<()> {
|
||||
let db = Db::connect(&config.database_url)
|
||||
let db = Db::connect(&config.database_url, config.db_max_connections)
|
||||
.await
|
||||
.context("connecting to the database")?;
|
||||
|
||||
@@ -136,7 +136,8 @@ pub async fn create_user(database_url: &str, email: &str, role: Role) -> anyhow:
|
||||
auth::hash_password(&password).map_err(|err| anyhow::anyhow!("hashing password: {err}"))?
|
||||
};
|
||||
|
||||
let db = Db::connect(database_url)
|
||||
// CLI one-shot: a tiny pool is plenty.
|
||||
let db = Db::connect(database_url, 2)
|
||||
.await
|
||||
.context("connecting to the database")?;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user