5个版本

0.1.0 2023年11月17日
0.1.0-rc.42023年11月2日
0.1.0-rc.32023年3月24日
0.1.0-rc.22022年5月9日
0.1.0-rc.12021年6月9日

#1740过程宏

Download history 1480/week @ 2024-03-25 1843/week @ 2024-04-01 1408/week @ 2024-04-08 1651/week @ 2024-04-15 1627/week @ 2024-04-22 1400/week @ 2024-04-29 1151/week @ 2024-05-06 1539/week @ 2024-05-13 1738/week @ 2024-05-20 1399/week @ 2024-05-27 1471/week @ 2024-06-03 1192/week @ 2024-06-10 1255/week @ 2024-06-17 1544/week @ 2024-06-24 1162/week @ 2024-07-01 919/week @ 2024-07-08

每月5,059次下载
11 个crate中使用(通过 rocket_sync_db_pools

MIT/Apache

11KB
107 代码行

sync_db_pools ci.svg crates.io docs.svg

该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