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日 | 
#1265 在 数据库接口 中排名
12,347 每月下载量
被 12 个Crates (10个直接使用) 使用
1MB
 14K  SLoC
db_pools  
  
 
为Rocket提供异步数据库驱动集成。有关完整用法,请参阅Crates文档。
用法
- 
将 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)]装饰。将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 }
依赖项
~14–54MB
~1M SLoC