gargoyle-postgresql

Manage PostgreSQL servers with gargoyle

Latest on Hackage:0.2.0.2

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

BSD-3-Clause licensed by Obsidian Systems LLC
Maintained by [email protected]

This package provides tools for managing PostgreSQL servers that live in local folders and communicate via a Unix domain socket. It uses the gargoyle package in order to automatically initialize, spin up, and spin down such servers according to client demand.

The `gargoyle-psql` executable is such a client which will try to connect to a PostgreSQL server at a given location:

gargoyle-psql db
psql (9.5.6)
Type "help" for help.

postgres=#

Note that `gargoyle-psql` assumes that PostgreSQL executables such as psql are available on the PATH. A custom Gargoyle is required to use non-standard PostgreSQL installations.

The following is an example of using this package to run postgresql-simple actions using a local DB:

import Database.PostgreSQL.Simple
import Gargoyle
import Gargoyle.PostgreSQL

withDb :: String -> (Connection -> IO a) -> IO a
withDb dbPath a = withGargoyle defaultPostgres dbPath $ \dbUri -> a =<< connectPostgreSQL dbUri