gen-table

gen-table is a tool that teaches mysql table structures to generate rust struct code,
which is easy for developers to use and automatically manage table structure generation.

install

shell cargo install gen-table or shell cargo install --git https://github.com/daheige/rs-tbox

help

``` gen-table -h Hello, welcome to gen-table gen-table for mysql table structures convert rust code

Usage: gen-table [OPTIONS] --dsn --table

Options: -d, --dsn mysql dsn,eg:mysql://root:root1234@localhost/test -o, --outdir gen code output dir [default: src/model] -t, --table

tables eg:orders,users -e, --enabletabname whether to generate tablename method for struct -n, --no_null whether to allow a field of null type -h, --help Print help -V, --version Print version ```

how to use

shell gen-table -d=mysql://root:root1234@localhost/test -t=news,news_topics -o=src/model Hello, welcome to gen-table tables:news,news_topics enable_table_name:true no_null_field:false gen tables:["news", "news_topics"] rust code gen code for table:news current field:created_at is null able,type:Duration current field:updated_at is null able,type:Duration current field:deleted_at is null able,type:Duration current field:title is null able,type:String current field:slug is null able,type:String current field:content is null able,type:String current field:status is null able,type:String gen code for table:news finish gen code for table:news_topics gen code for table:news_topics finish

The generated rust code: src/model/mod.rs ``` // code generated by gen-table. DO NOT EDIT!!! pub mod news; pub mod news_topics;

```

src/model/news.rs ```rust // code generated by gen-table. DO NOT EDIT!!! // gen code for news table.

use std::time::Duration;

// NEWSTABLE for news table const NEWSTABLE: &str = "news";

// NewsEntity for news table pub struct NewsEntity { pub id: i64, pub createdat: Option, pub updatedat: Option, pub deleted_at: Option, pub title: Option, pub slug: Option, pub content: Option, pub status: Option, }

// impl tablename method for NewsEntity impl NewsEntity { pub fn tablename(&self) -> String { NEWSTABLE.tostring() } } ```

src/model/news.rs ```rust // code generated by gen-table. DO NOT EDIT!!! // gen code for news_topics table.

// NEWSTOPICSTABLE for newstopics table const NEWSTOPICSTABLE: &str = "newstopics";

// NewsTopicsEntity for newstopics table pub struct NewsTopicsEntity { pub newsid: i64, pub topic_id: i64, }

// impl tablename method for NewsTopicsEntity impl NewsTopicsEntity { pub fn tablename(&self) -> String { NEWSTOPICSTABLE.to_string() } } ```