5 个版本
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 日 |
0.1.0-rc.1 | 2021 年 6 月 9 日 |
#2052 在 数据库接口
5,205 每月下载量
用于 10 个包(其中 9 个直接使用)
1MB
14K SLoC
sync_db_pools
该包提供用于配置和访问 Rocket 中数据库连接池的 trait、实用工具和过程宏。此实现由 r2d2
支持,并通过请求守卫公开连接。
用法
首先,启用与您的数据库类型对应的特性
[dependencies.rocket_sync_db_pools]
version = "0.1.0"
features = ["diesel_sqlite_pool"]
支持的所有数据库及其关联的特性名称的完整列表可在 包文档 中找到。在您选择的任何配置源中,配置一个 databases
字典,其中每个数据库都有一个键,这里在 TOML 源中使用 sqlite_logs
[default.databases]
sqlite_logs = { url = "/path/to/database.sqlite" }
在您的应用程序源代码中
#[macro_use] extern crate rocket;
use rocket_sync_db_pools::{database, diesel};
#[database("sqlite_logs")]
struct LogsDbConn(diesel::SqliteConnection);
#[get("/logs/<id>")]
async fn get_logs(conn: LogsDbConn, id: usize) -> Result<Logs> {
conn.run(|c| Logs::by_id(c, id)).await
}
#[launch]
fn rocket() -> _ {
rocket::build().attach(LogsDbConn::fairing())
}
有关详细信息,请参阅 包文档
依赖项
~14–50MB
~874K SLoC