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