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.2", = ["mysql"] }
= { = "0.7", = ["mysql","runtime-tokio-native-tls"] }
[]
= { = "1", = ["macros"] }
- 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 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, change `#[co_orm(skip)]` to `#[sqlx(skip)]` .