20 lines
490 B
Rust
20 lines
490 B
Rust
use anyhow::Context;
|
|
use sqlx::PgPool;
|
|
|
|
pub async fn get_database() -> anyhow::Result<PgPool> {
|
|
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)
|
|
}
|