Skip to main content

Module schema_gen

Module schema_gen 

Source
Expand description

Diesel 风格 schema.rs 自动生成

从数据库表元数据生成 typed_query! 表声明,配合宏做编译期列名校验。

§设计

Diesel 的 diesel print-schema 命令从数据库反向生成 schema.rs 文件, 包含 table! 宏声明,让 SQL 列名错误在编译期被捕获。

本模块提供等价功能,生成 SZ-ORM 的 typed_query! 声明:

// 生成的 schema.rs 内容
use sz_orm_core::typed_query;

typed_query! {
    table users {
        id: i64,
        name: String,
        email: String,
        created_at: String,
    }
}

typed_query! {
    table orders {
        order_id: i64,
        user_id: i64,
        total: f64,
    }
}

Structs§

ColumnSchema
单列的元数据(足够生成 typed_query! 声明)
SchemaGenerator
生成器:把表元数据列表转换成 schema.rs 文件内容
TableSchema
单表的元数据

Functions§

sql_type_to_rust
把 SQL 类型字符串映射到 Rust 类型字符串