| use sqlx::postgres::PgPoolOptions; | |
| use sqlx::PgPool; | |
| use tracing::info; | |
| pub async fn init_pool(database_url: &str) -> PgPool { | |
| info!("Connecting to database..."); | |
| let pool = PgPoolOptions::new() | |
| .max_connections(20) | |
| .connect(database_url) | |
| .await | |
| .expect("Failed to connect to PostgreSQL"); | |
| info!("Database connected"); | |
| pool | |
| } | |
| pub async fn run_migrations(pool: &PgPool) { | |
| info!("Running migrations..."); | |
| sqlx::migrate!("./migrations") | |
| .run(pool) | |
| .await | |
| .expect("Failed to run migrations"); | |
| info!("Migrations complete"); | |
| } | |