arel-0.2.4 has been yanked.
Arel
Install
# db: sqlite|postgres|mysql
= { = "0.2", = ["runtime-tokio-native-tls", "sqlite"] }
Demo
use *;
// init db from Environment
set_var;
// 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 = ArelActiveUser ;
let ret = active_user.save.await?;
println!;
// select
let user: User = query.r#where.fetch_one_as.await?;
let _active_user: ArelActiveUser = user.into;
let user: ArelUser = query.r#where.fetch_one_as.await?;
let _active_user: ArelActiveUser = user.into;
let uesrs: = query.where_range.fetch_all_as.await?;
let uesrs: = query.r#where.fetch_all_as.await?;
// update
let user: User = query.fetch_one_as.await?;
let mut active_user: ArelActiveUser = user.into;
active_user.name.set;
let ret = active_user.save.await?;
println!;
// delete
let ret = active_user.destroy.await?;
println!;
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;
let sql = query.r#where.lock.to_sql;
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;
with_transaction
.await?;