how to make diesel auto generate model

Viewed 894

I am now using this command to generate schema in rust diesel:

diesel --database-url postgres://postgres:kZLxttcZSN@127.0.0.1:5432/rhythm \
migration run --config-file="${CURRENT_DIR}"/diesel-rhythm.toml

and this is the toml config:

[print_schema]
file = "src/model/diesel/rhythm/rhythm_schema.rs"

# This will cause only the users and posts tables to be output
filter = { only_tables = ["favorites", "songs", "playlist"] }

is it possible to make diesel auto generate the model entity? the entity may look like this:

#[derive( Serialize, Queryable, Deserialize,Default)]
pub struct Music {
    pub id: i64,
    pub name: String,
    pub source_id: String
}

now I write the entity by handle. what should I do to make it generate by diesel cli, I read the document and did not found any useful configuration about this.

1 Answers

You are looking for diesel_cli_ext

First install diesel_cli_ext:

cargo install diesel_cli_ext

[Then] you would have to generate your schema file the diesel way if you haven't yet:

diesel print-schema > src/schema.rs

Finally you have to generate the models file:

diesel_ext --model > src/models.rs

The models in your schema file would be generated in src/models.rs eg:

#[derive(Queryable)]
pub struct Music {
    pub id: i64,
    pub name: String,
    pub source_id: String
}
Related