1 个稳定版本

1.0.0 2020年9月8日

#6#mobc

MIT 许可证

6KB
59

mobc-diesel

为 Diesel 提供mobc支持,允许使用连接池。

示例

示例创建了一个在本地主机运行的 PostgreSQL 或 SQLite 数据库的连接池,然后创建了一组线程,并为每个线程从池中获取一个连接。

可执行版本在 examples/ 中,您可以使用以下命令运行: cargo run --example postgres --features "diesel/postgres"cargo run --example sqlite --features "diesel/sqlite"

extern crate diesel;
extern crate mobc;
extern crate mobc_diesel;
extern crate tokio;

use diesel::pg::PgConnection;
use mobc_diesel::ConnectionManager;

#[tokio::main]
async fn main() {
    let manager = ConnectionManager::<PgConnection>::new("postgres://127.0.0.1/");
    let pool = mobc::Pool::builder().build(manager);

    for _ in 0..10i32 {
        let pool = pool.clone();
        tokio::spawn( async move {
            let connection = pool.get().await;

            assert!(connection.is_ok());
        });
    }
}

使用 diesel master 分支

如果您想使用与 mobc-diesel 的 diesel master 分支,您必须在您的 Cargo.toml 文件中添加以下部分。如果您正在使用 workspace,则需要在 workspace 的根目录下的 Cargo.toml 中进行。

[patch.crates-io]
diesel = { git = "https://github.com/diesel-rs/diesel.git" }
diesel_infer_schema = { git = "https://github.com/diesel-rs/diesel.git" }
diesel_codegen = { git = "https://github.com/diesel-rs/diesel.git" }

依赖关系

~7MB
~123K SLoC