#sqlx #macro #postgresql #mysql #bringing #ormx #orm-like

ormx-macros

轻量级过程宏,为sqlx带来类似ORM的功能

20个版本 (7个重大更新)

0.10.4 2021年10月4日
0.9.0 2021年9月23日
0.7.0 2021年3月29日
0.1.8 2020年11月2日

#149#sqlx

每月34次下载
用于 ormx

MIT 许可证

46KB
1K SLoC

ormx

sqlx 提供轻量级宏

入门指南

将ormx和sqlx添加到您的 Cargo.toml

[dependencies.ormx]
version = "0.7"
features = ["mysql"]

[dependencies.sqlx]
version = "0.5"
default-features = false
features = ["macros", "mysql", "runtime-tokio-rustls"]

目前,ormx支持mysql/mariadb和postgres。

它做什么?

ormx提供宏,在编译时生成常用的SQL查询。
ormx旨在与sqlx一起使用。它生成的所有内容都在底层使用 sqlx::query!,因此每个生成的查询都会在编译时与您的数据库进行核对。

它不做什么?

ormx既不是完整的ORM也不是查询构建器。对于除了简单的CRUD之外的所有事情,您始终可以使用sqlx。

每个表都必须包含一个id列,该列唯一标识一行。可能的话,您会希望使用自增整数。这是ormx的一个基本要求,如果您的表不满足这个要求,ormx可能不是您要找的。

帮助

如果您遇到问题或有问题,请随时在 #ormx sqlx Discord 上提问
当前文档不是最佳状态,因此请放心寻求帮助。

mysql示例

postgres示例

功能

  • mysql - 启用对mysql/mariadb的支持
  • postgres - 启用对postgres的支持

0.7的迁移指南

从0.7版本开始,id列不再是特殊的了 - 如果它们由数据库生成,您必须使用 #[ormx(default)] 进行注释。

关于重借用的说明

如果您遇到编译器告诉您不能重复使用一个&mut Connection的问题,因为

  • use of moved value
  • 移动发生,因为'con'具有类型 '&mutConnection',它没有实现'Copy' 特质

您将需要手动使用&mut *con重新借用连接。

依赖项

~2MB
~44K SLoC