ormlite 0.24.3

An ORM for people who love SQL
Documentation
#[path = "../setup.rs"]
mod setup;

mod user;
mod organization;

pub use user::User;
pub use organization::Organization;
use uuid::Uuid;
use ormlite::model::*;
use ormlite::sqlite::SqliteConnection;
use ormlite::Connection;
use sql::ToSql;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut conn = SqliteConnection::connect(":memory:").await?;
    let migration = setup::migrate_self(&[
        &std::path::Path::new(file!()).parent().unwrap().display().to_string(),
    ]);
    for s in migration.statements {
        let sql = s.to_sql(sql::Dialect::Sqlite);
        ormlite::query(&sql)
            .execute(&mut conn)
            .await?;
    }

    let org_id = Uuid::new_v4();
    let org = Organization {
        id: org_id,
        name: "Acme".to_string(),
        is_active: true,
    };
    let user = User {
        id: Uuid::new_v4(),
        name: "John".to_string(),
        age: 99,
        organization: Join::new(org),
    };
    let user = user.insert(&mut conn).await?;
    assert_eq!(user.organization.id, org_id);
    Ok(())
}