Rust derive macro implement Create, Read, Update, and Delete (CRUD) methods base on sqlx.
Use
adding the following to your project's Cargo.toml:
[]
= { = "0.3", = ["mysql"] }
= { = "0.7", = ["mysql","runtime-tokio-native-tls"] }
- features: mysql, postgres, sqlite, mssql
Examples
// #[derive(sqlx::FromRow)]
// rename table name
pub async
async
#[derive(Crud)]
`#[derive(FromRow)]`
generate method: get, get_by, query, query_by, update, delete, insert, insert_all.
attributes:
`#[co_orm(id)]`
default first field is primary key or set.
`#[co_orm(seq)]`
sequence field, auto increment. insert will skip this field.
`#[co_orm(rename="name")]`
rename table name or field name.
default table name by struct name to_table_case: UserDetail => user_detail.
default field name by field name to_snake_case: UserDetail => user_detail.
`#[co_orm(skip)]`
ignore field.
`#[co_orm(update)]`
generate method update_xxx.
`#[co_orm(by)]`
generate qet_by_field, query_by_field, update_by_field, delete_by_field.
#[derive(FromRow)]
`#[derive(FromRow)]`
impl sqlx::FromRow trait.
or use `#[derive(sqlx::FromRow)]` macro or impl `sqlx::FromRow` trait.
if using sqlx::FromRow, if have `#[co_orm(skip)]` add `#[sqlx(skip)]` .