use anyhow::Context; use sqlx::PgPool; pub async fn get_database() -> anyhow::Result { tracing::trace!("initializing database"); let db = sqlx::PgPool::connect(&std::env::var("DATABASE_URL").context("DATABASE_URL is not set")?) .await?; tracing::trace!("migrating crdb"); sqlx::migrate!("migrations/crdb") .set_locking(false) .run(&db) .await?; let _ = sqlx::query("SELECT 1;").fetch_one(&db).await?; Ok(db) }