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日 |
#1740 在 过程宏
每月5,059次下载
在 11 个crate中使用(通过 rocket_sync_db_pools)
11KB
107 代码行
sync_db_pools
该crate提供特质、工具和过程宏,用于配置和访问Rocket中的数据库连接池。此实现由r2d2
支持,并通过请求守卫公开连接。
用法
首先,启用与您的数据库类型对应的特性
[dependencies.rocket_sync_db_pools]
version = "0.1.0"
features = ["diesel_sqlite_pool"]
支持的数据库及其相关特性名称的完整列表可在crate文档中找到。在您选择的任何配置源中,配置一个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())
}
有关详细信息,请参阅crate文档。
依赖关系
~0.5–1MB
~23K SLoC