1 个不稳定版本
0.1.0 | 2024年6月7日 |
---|
#1354 在 数据库接口
46KB
981 行(不包括注释)
一个 sql!
宏,用于编写类似于 format!
的编译时检查数据库查询。
示例
use sqlm_postgres::{sql, Enum, FromRow, FromSql, ToSql};
let id: i64 = 1;
let user: User = sql!("SELECT * FROM users WHERE id = {id}").await?;
#[derive(Debug, FromRow)]
struct User {
id: i64,
name: String,
role: Role,
}
#[derive(Debug, Default, FromSql, ToSql, Enum)]
#[postgres(name = "role")]
enum Role {
#[default]
#[postgres(name = "user")]
User,
#[postgres(name = "admin")]
Admin,
}
用法
- 将
sqlm-postgres
添加到您的依赖项中 - 在编译时使
DATABASE_URL
环境变量可用(例如,通过添加一个.env
文件) - 开始使用
sql!
宏(无需进一步设置;自动为您创建连接池)
注意事项
- 自动为您创建全局连接池,无法选择不创建
- 编译时检查无法禁用。因此,在您的CI上也需要数据库访问。
- 不知道Postgres返回的行是否可为空,因此需要所有类型实现
Default::default
,如果Postgres返回null,则回退到它。
依赖项
~21–31MB
~583K SLoC