Skip to main content

Schema

Derive Macro Schema 

Source
#[derive(Schema)]
{
    // Attributes available to this derive:
    #[table]
    #[column]
}
Expand description

派生宏:自动从 Rust 结构体生成表结构信息。

解析 #[table(name = "...")]#[column(...)] 属性, 生成 Schema trait 实现,便于在运行时反射表名与列信息。

§支持的属性

  • #[table(name = "users")] — 指定表名(默认使用结构体名的蛇形形式)
  • #[column(name = "user_id")] — 指定列名(默认使用字段名)
  • #[column(type = "VARCHAR(255)")] — 指定 SQL 类型
  • #[column(primary_key)] — 标记主键
  • #[column(nullable)] — 显式标记允许 NULL
  • #[column(skip)] — 跳过此字段,不生成 schema 条目
  • #[column(default = "0")] — 标记字段有默认值

§类型推断

字段的 Rust 类型会自动映射为 SQL 类型:

  • i64/u64BIGINT
  • i32/u32INTEGER
  • StringTEXT
  • f64DOUBLE
  • boolBOOLEAN
  • Vec<u8>BLOB
  • Option<T> → 与 T 相同,但标记为 nullable