use sqlx::{Acquire, Postgres};
use tracing::instrument;
static MIGRATOR: sqlx::migrate::Migrator = sqlx::migrate!();
#[instrument(level = "debug", skip(conn))]
pub async fn run_migrations<'a, A>(conn: A) -> Result<(), sqlx::Error>
where
A: Acquire<'a, Database = Postgres>,
{
let mut tx = conn.begin().await?;
sqlx::query!("CREATE SCHEMA IF NOT EXISTS fx_durable_ga;")
.execute(&mut *tx)
.await?;
sqlx::query!("SET LOCAL search_path TO fx_durable_ga;")
.execute(&mut *tx)
.await?;
MIGRATOR.run(&mut *tx).await?;
tx.commit().await?;
Ok(())
}