eradman/ephemeralpg

Quickly spin up a temporary PostgreSQL test databases

Ruby

233

177 commits

updated Jun 25, 2026

See the code

README

Ephemeral PostgreSQL

Run tests on an isolated, temporary PostgreSQL database.

Temporary database created with pg_tmp have a limited shared memory footprint and are automatically garbage-collected after the number of seconds specified by the -w option (the default is 60).

pg_tmp reduces the wait time for a new database to less than one second by initializing a database in the background that is used by subsequent invocations.

Source Installation - BSD, Mac OS, and Linux

make install

Or to specify a specific installation location

PREFIX=$HOME/local make install

Man Page Examples for pg_tmp(1)

Create a temporary database and run a query:

uri=$(pg_tmp)
psql $uri -f my.sql

Start a temporary server with a custom extension:

uri=$(pg_tmp -o "-c shared_preload_libraries=$PWD/auth_hook")
psql $uri -c "SELECT 1"

News

Notification of new releases are provided by an Atom feed, and release history is covered in the NEWS file.

postgresql-database
temporary-database
test-automation

Contributors

eradman

177 commits

eradman/ephemeralpg

Quickly spin up a temporary PostgreSQL test databases

Ruby

233

177 commits

updated Jun 25, 2026

See the code

README

Ephemeral PostgreSQL

Run tests on an isolated, temporary PostgreSQL database.

Temporary database created with pg_tmp have a limited shared memory footprint and are automatically garbage-collected after the number of seconds specified by the -w option (the default is 60).

pg_tmp reduces the wait time for a new database to less than one second by initializing a database in the background that is used by subsequent invocations.

Source Installation - BSD, Mac OS, and Linux

make install

Or to specify a specific installation location

PREFIX=$HOME/local make install

Man Page Examples for pg_tmp(1)

Create a temporary database and run a query:

uri=$(pg_tmp)
psql $uri -f my.sql

Start a temporary server with a custom extension:

uri=$(pg_tmp -o "-c shared_preload_libraries=$PWD/auth_hook")
psql $uri -c "SELECT 1"

News

Notification of new releases are provided by an Atom feed, and release history is covered in the NEWS file.

postgresql-database
temporary-database
test-automation

Contributors

eradman

177 commits

Languages

Ruby

55.0%

Shell

23.7%

Roff

12.9%

Makefile

5.0%

C

3.5%