Handles Postgres migrations via async diesel
pub const MIGRATIONS: diesel_async_migrations::EmbeddedMigrations = diesel_async_migrations::embed_migrations!();
async fn run_migrations(url: impl AsRef<str>) -> anyhow::Result<()> {
let mut conn = AsyncConnection::establish(url.as_ref()).await?;
MIGRATIONS.run_pending_migrations(&mut conn).await?;
Ok(())
}
In order for Cargo to correctly pick up changes to migration directory. Add a build.rs:
fn main() {
println!("cargo:rerun-if-changed=migrations");
}