Files
YANPM/public/database/src/lib.rs
2025-11-11 20:28:49 +08:00

23 lines
677 B
Rust

use sea_orm::ConnectOptions;
pub async fn get_connection<T: FnOnce(&mut ConnectOptions) -> &mut ConnectOptions>(
connection_string: &str,
option_fn: Option<T>,
) -> Result<sea_orm::DatabaseConnection, sea_orm::DbErr> {
use sea_orm::Database;
let mut opt = ConnectOptions::new(connection_string.to_string());
opt.max_connections(10)
.min_connections(0)
.connect_timeout(std::time::Duration::from_secs(8))
.idle_timeout(std::time::Duration::from_secs(8))
.test_before_acquire(true)
.sqlx_logging(false);
if let Some(option_fn) = option_fn {
option_fn(&mut opt);
}
Database::connect(opt).await
}