#orm #sqlx #crud #miniorm #database-table #schema #top

app miniorm-example-transactions

基于sqlx构建的一个非常简单的ORM

2个不稳定版本

0.3.0 2024年3月15日
0.1.0 2024年3月15日

#13#crud

MIT 协议

55KB
724

miniorm

Build Test Clippy Doc

Crates.io Docs.rs Crates.io Crates.io

miniorm 包提供在 sqlx 上构建的一个非常简单的 ORM

sqlx 已经提供了一个可以自动派生的 FromRow trait,用于将数据库中的行转换为对象。然而,没有相应的 ToRow 宏可以允许将对象转换回行以便插入数据库。

这就是 miniorm 出现的地方。它提供了一个可以自动派生的 Schema trait,可以描述用于给定实体的表结构(即 struct)。

任何实现了 FromRowSchema trait 的结构体都可以用来创建一个 CrudStore,提供所谓的“CRUD”操作

  • (C) 创建
  • (R) 读取
  • (U) 更新
  • (D) 删除

目前,miniorm 仅支持 postgres 后端。未来可能会提供其他后端。

示例

use sqlx::FromRow;
use miniorm::Schema;

#[derive(Debug, Clone, Eq, PartialEq, FromRow, Schema)]
struct Todo {
    #[column(TEXT NOT NULL)]
    description: String,

    #[column(BOOLEAN NOT NULL DEFAULT false)]
    done: bool,
}

更多完整的示例,请参见

依赖项

~38–51MB
~892K SLoC