#sqlx #orm #crud #miniorm #operations #automatic #schema

app miniorm-example-todo

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

3 个版本 (重大变更)

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

#939数据库接口

MIT 许可证

55KB
696

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)reate
  • (R)ead
  • (U)pdate
  • (D)elete

目前,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,
}

更多完整示例,请参阅

依赖项

~51MB
~891K SLoC