Crate pg_embed[][src]

pg-embed

Run a Postgresql database locally on Linux, MacOS or Windows as part of another Rust application or test.

Usage

A postgresql instance can be created using
postgres::PgEmbed::new(postgres::PgSettings, fetch::FetchSettings)

Examples

use pg_embed::postgres::{PgEmbed, PgSettings};
use pg_embed::fetch;
use pg_embed::fetch::{OperationSystem, Architecture, FetchSettings, PG_V13};

let pg_settings = PgSettings{
    executables_dir: "data/postgres".to_string(),
    database_dir: "data/db".to_string(),
    user: "postgres".to_string(),
    password: "password".to_string(),
    persistent: false
};
let fetch_settings = FetchSettings{
    host: "https://repo1.maven.org".to_string(),
    operating_system: OperationSystem::Darwin,
    architecture: Architecture::Amd64,
    version: PG_V13
};
let mut pg_emb = PgEmbed::new(pg_settings, fetch_settings);

async {
    /// download postgresql
    pg_emb.aquire_postgres().await;

    /// initialize postgresql database
    pg_emb.init_db().await;

    /// start postgresql database
    pg_emb.start_db().await;

    /// stop postgresql database
    pg_emb.stop_db().await;
}

Modules

fetch
postgres