1pub mod ctx;
2pub mod error;
3pub mod executor;
4
5pub use ctx::Ctx;
6pub use durable_macros::{step, workflow};
7pub use error::DurableError;
8pub use executor::Executor;
9
10use sea_orm::{ConnectOptions, Database, DatabaseConnection};
11use sea_orm_migration::MigratorTrait;
12
13pub async fn init(database_url: &str) -> Result<DatabaseConnection, DurableError> {
19 let opt = ConnectOptions::new(database_url);
20 let db = Database::connect(opt).await?;
21
22 durable_db::Migrator::up(&db, None).await?;
24
25 tracing::info!("durable initialized");
26 Ok(db)
27}