artis-0.2.2 has been yanked.

依赖
artis = {version = "0.2.2", features = ["derive","sqlite"]}
rbs = { version = "4.5"}
rbatis = { version = "4.5"}
rbdc-sqlite = { version = "4.5" }
serde = { version = "1", features = ["derive"] }
tokio = { version = "1", features = ["full"] }
自动生成表
#[derive(Debug, Serialize, Deserialize, artis::Artis)]
pub struct Person {
#[artis(PRIMARY, AUTO_INCREMENT)]
pub id: Option<u64>,
#[artis(type = "VARCHAR", size = 255, INDEX)]
pub name: String,
#[artis(default = "18", comment = "年龄")]
pub age: u32,
#[artis(NO_NULL, UNIQUE)]
pub id_card: Vec<String>,
}
async fn sqlite_migrator() -> Result<()> {
let rb = rbatis::RBatis::new();
let _ = rb.link(SqliteDriver {}, "./dist/sql.db").await?;
let rb: Artis = rb.into();
let metas = vec![Person::migrator()];
rb.auto_migrate(&SqliteMigrator {}, metas).await?;
Ok(())
}
async fn mysql_migrator() -> Result<()> {
let rb = rbatis::RBatis::new();
let _ = rb.link(MysqlDriver {}, "mysql://root:xxxx@locahost:3306/database").await?;
let rb: Artis = rb.into();
let metas = vec![Person::migrator()];
rb.auto_migrate(&MysqlMigrator {}, metas).await?;
Ok(())
}