5个版本
0.2.0 | 2024年5月23日 |
---|---|
0.1.0 | 2023年11月17日 |
0.1.0-rc.4 | 2023年11月2日 |
0.1.0-rc.3 | 2023年3月24日 |
0.1.0-rc.2 | 2022年5月9日 |
#886 在 进程宏 中
每月下载量 7,503
用于 11 个库 (通过 rocket_db_pools)
11KB
101 行
db_pools
为Rocket提供异步数据库驱动集成。有关完整用法详情,请参阅库文档。
用法
-
将
rocket_db_pools
作为依赖项添加,并启用一个或多个 数据库驱动功能[dependencies.rocket_db_pools] version = "0.2.0" features = ["sqlx_sqlite"]
-
为您的数据库选择一个名称,此处为
sqlite_logs
。 配置 至少一个数据库的URL[default.databases.sqlite_logs] url = "/path/to/database.sqlite"
-
为单元类型(此处为
Logs
)派生Database
,该类型包装所选驱动程序的Pool
类型,并带有装饰#[database("name")]
。将Type::init()
添加到您的应用Rocket
中以初始化数据库池use rocket_db_pools::{Database, Connection}; #[derive(Database)] #[database("sqlite_logs")] struct Logs(sqlx::SqlitePool); #[launch] fn rocket() -> _ { rocket::build().attach(Logs::init()) }
-
使用
Connection<Type>
作为请求守卫来检索一个活动的数据库连接#[get("/<id>")] async fn read(mut db: Connection<Logs>, id: i64) -> Result<Log> { sqlx::query!("SELECT content FROM logs WHERE id = ?", id) .fetch_one(&mut *db) .map_ok(|r| Log(r.content)) .await }
依赖项
~0.4–1MB
~21K SLoC