arel-0.3.2 has been yanked.
Arel
Install
// Cargo.toml
serde =
arel = // sqlte | mysql | postgres
Demo
use *;
// init db from Environment
set_var;
init.await?;
// or init db from code
get_or_init.await?;
// total count
let count = query.select_sql.fetch_count.await?;
println!;
// create
let mut active_user = ArelUser ;
active_user.save.await?;
// select
let user: User = query.r#where.fetch_one.await?;
let _active_user: ArelUser = user.into;
let user: ArelUser = query.r#where.fetch_one.await?;
let uesrs: = query.where_range.fetch_all.await?;
let uesrs: = query.r#where.fetch_all.await?;
// update
let user: User = query.fetch_one.await?;
let mut active_user: ArelUser = user.into;
// active_user.name.set("n-1");
active_user.assign;
active_user.save.await?;
// destroy
active_user.destroy.await?;
Query
query.select.to_sql;
let sql = query.r#where.r#where.to_sql;
// where_not
let sql = query.where_not.to_sql;
// where_range
let sql = query.where_range.to_sql;
let sql = query..to_sql;
let sql = query.join_sql.to_sql;
// should use in transaction
let user: User = query.r#where.lock.fetch_one_with_exec;
let sql = query.group.having.to_sql;
let sql = query.order.to_sql;
let sql = query.order_asc.to_sql;
let sql = query.order_desc.to_sql;
let sql = query.limit.to_sql;
let sql = query.offset;
let sql = query.paginate.to_sql;
Insert
with_transaction
.await?;
Update
let active_user: ArelUser = query.r#where.fetch_one.await?;
active_user.increment_save.await?;