#postgres #sqlx


Helper to create and drop postgres DBs. Useful for testing.

3 releases

0.1.2 May 18, 2023
0.1.1 May 17, 2023
0.1.0 Jan 15, 2023

#560 in Development tools

38 downloads per month
Used in pg-taskq

MIT license

466 lines


Crates.io License

Simple helper to create and drop Postgres databases. Useful for tests.

This uses either the psql command line utility (default) or the sqlx and sqlx-cli (which makes use of sqlx migrations). Use the sqlx feature for that.


    let db_uri = "postgres://localhost:5432/pg_setup_example";

    let db = PostgresDBBuilder::new(db_uri)
        // optionally keep db

    // optionally create a table
    db.create_table("users", |t| {
        t.add_column("id", "uuid", |c| c.primary_key());
        t.add_column("name", "text", |c| c.not_null());
        t.add_column("email", "text", |c| c.not_null());
        t.add_column("created_at", "timestamp", |c| c.not_null());

    // execute sql
    db.execute("SELECT table_schema,table_name, table_type FROM information_schema.tables WHERE table_schema = 'public';").await?;

    // db will be dropped at the end of the scope, unless `keep_db` is called!

In case you want to keep the db around for debugging you can call PostgresDB::keep_db.

Will use the public schema by default but you can set this with PostgresDB::schema.

License: MIT


~119K SLoC