Files
vrbattles-api/src/db/mod.rs
2026-01-20 05:41:25 +00:00

34 lines
890 B
Rust

use sqlx::{postgres::PgPoolOptions, PgPool};
use crate::config::Config;
/// Type alias for the database connection pool
pub type DbPool = PgPool;
/// Initialize the database connection pool
pub async fn init_pool(config: &Config) -> Result<DbPool, sqlx::Error> {
tracing::info!("Connecting to database...");
let pool = PgPoolOptions::new()
.max_connections(10)
.min_connections(2)
.acquire_timeout(std::time::Duration::from_secs(30))
.connect(&config.database_url)
.await?;
tracing::info!("Database connection established");
Ok(pool)
}
/// Run database migrations
pub async fn run_migrations(pool: &DbPool) -> Result<(), sqlx::migrate::MigrateError> {
tracing::info!("Running database migrations...");
sqlx::migrate!("./migrations").run(pool).await?;
tracing::info!("Database migrations complete");
Ok(())
}