#sqlx #crud #orm #macro-derive #derive-debug #debugging

sqlx-crud

为SQLx实现创建、读取、更新和删除(CRUD)方法的派生宏

5个不稳定版本

0.4.0 2023年4月18日
0.3.2 2022年9月7日
0.3.1 2022年3月29日
0.3.0 2022年3月26日
0.2.0 2022年3月16日

#2138 in 数据库接口

Download history 81/week @ 2024-03-24 71/week @ 2024-03-31 22/week @ 2024-04-07 20/week @ 2024-04-14 27/week @ 2024-04-21 20/week @ 2024-04-28 1/week @ 2024-05-05 18/week @ 2024-05-12 27/week @ 2024-05-19 47/week @ 2024-05-26 17/week @ 2024-06-02 25/week @ 2024-06-09 24/week @ 2024-06-16 23/week @ 2024-06-23 7/week @ 2024-06-30 3/week @ 2024-07-07

61 每月下载量
3 个Crates中使用了(直接使用2个)

MIT 许可证

29KB
153

sqlx-crud

sqlx-crud是SQLx的扩展,为表示sqlx数据库中表的struct派生创建、读取、更新和删除(CRUD)方法。

use sqlx::FromRow;
use sqlx_crud::SqlxCrud;

#[derive(Debug, FromRow, SqlxCrud)]
struct User {
    user_id: i32,
    name: String,
}

if let Some(user) = User::by_id(&pool, 42) {
    println!("Found user user_id=42: {:?}", user);
}

主要特性

  • 为struct提供单个派生宏

  • 提供创建、读取、更新和删除记录的方法

  • 自动推断主键和表名

  • 可重复使用的表元数据

  • 内部和外部数据库ID分配

这减少了处理典型的CRUD操作时所需的大量重复代码。

sqlx-crud力求在几个狭窄定义的任务上做得很好,以减少您在单表操作数据库应用时可能编写的80%的冗余代码。它提供了机制:SchemaCrud,以访问和重用生成的ID、列和查询元数据。这可以帮助编写更复杂的查询,但主要用例是CRUD。

安装

安装sqlx-crud类似于安装SQLx。

# Cargo.toml
[dependencies]
sqlx-crud = { version = "0", features = ["runtime-tokio-rustls"] }

请参阅文档以获取完整的使用说明。

特性

sqlx-crud使用与SQLx相同的runtime-*标志,因为这些标志是依赖于SQLx的。

示例

您可以在示例目录中找到实际示例。

源代码

sqlx-crud的源代码可在https://www.github.com/treydempsey/sqlx-crud找到。

测试

doctests依赖于SQLx及其runtime-tokio-rustlssqlite特性。

可以使用以下方式运行测试:

$ cargo test

文档

文档托管在sqlx-crud文档

路线图

sqlx-crud已经完成了大部分我需要的功能,然而在为其他人打包发布时,我意识到还有几个可以改进的地方。计划更新和主要成就列在里程碑中。

许可协议

sqlx-crud 采用了 MIT 许可协议(参见:LICENSE)。

依赖项

~8–22MB
~343K SLoC