use sqlx::postgres::{PgPool, PgPoolOptions}; use std::time::Duration; pub async fn create_pool(database_url: &str) -> Result { PgPoolOptions::new() .max_connections(10) .acquire_timeout(Duration::from_secs(30)) .connect(database_url) .await } pub async fn run_migrations(pool: &PgPool) -> Result<(), sqlx::Error> { let migration_sql_001 = include_str!("../migrations/001_create_registry_tables.sql"); sqlx::raw_sql(migration_sql_001).execute(pool).await?; let migration_sql_002 = include_str!("../migrations/002_create_secondary_market_tables.sql"); sqlx::raw_sql(migration_sql_002).execute(pool).await?; let migration_sql_003 = include_str!("../migrations/003_create_primary_market_tables.sql"); sqlx::raw_sql(migration_sql_003).execute(pool).await?; tracing::info!("Database migrations completed successfully"); Ok(()) }