| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Database.Postgres.Temp.Internal
Description
This module provides the high level functions that are re-exported
by Database.Postgres.Temp. Additionally it includes some
identifiers that are used for testing but are not exported.
Synopsis
- data DB = DB {}
- toConnectionString :: DB -> ByteString
- defaultPostgresConfig :: [String]
- defaultConfig :: Config
- defaultPostgresConf :: [String] -> Config
- startConfig :: Config -> IO (Either StartError DB)
- start :: IO (Either StartError DB)
- stop :: DB -> IO ()
- stopPostgres :: DB -> IO ExitCode
- restart :: DB -> IO (Either StartError DB)
- reloadConfig :: DB -> IO ()
- withConfig :: Config -> (DB -> IO a) -> IO (Either StartError a)
- with :: (DB -> IO a) -> IO (Either StartError a)
- withRestart :: DB -> (DB -> IO a) -> IO (Either StartError a)
- optionsToDefaultConfig :: Options -> Config
- setCreateDb :: Config -> Accum PartialProcessConfig -> Config
- setInitDb :: Config -> Accum PartialProcessConfig -> Config
Documentation
Handle for holding temporary resources, the postgres process handle
and postgres connection information. The DB also includes the
final Plan that was used to start initdb, createdb and
postgres. See toConnectionString for converting a DB to
postgresql connection string.
Constructors
| DB | |
Fields
| |
toConnectionString :: DB -> ByteString Source #
defaultPostgresConfig :: [String] Source #
Default postgres options
defaultConfig :: Config Source #
The default configuration. This will create a database called "postgres"
via initdb (it's default behavior).
It will create a temporary directory for the data and a temporary directory
for a unix socket on a random port.
Additionally it will use append the following onto the "postgresql.conf"
shared_buffers = 12MB fsync = off synchronous_commit = off full_page_writes = off log_min_duration_statement = 0 log_connections = on log_disconnections = on client_min_messages = ERROR
defaultConfig also passes the --no-sync flag to initdb.
If you would like to customize this behavior you can start with the
defaultConfig and overwrite fields or combine a defaultConfig with another Config
using <> (mappend).
Alternatively you can eschew defaultConfig altogether, however
your postgres might start and run faster if you use
defaultConfig.
defaultConfig also sets the partialPlanInitDb to
pure standardProcessConfig and
partialPostgresPlanProcessConfig to standardProcessConfig.
defaultPostgresConf :: [String] -> Config Source #
mappend the defaultConfig with a Config that provides additional
"postgresql.conf" lines. Equivalent to
defaultPostgresConf extra = defaultConfig <> mempty
{ configPlan = mempty
{ partialPlanConfig = extra
}
}
Arguments
| :: Config |
|
| -> IO (Either StartError DB) |
Create temporary resources and use them to make a Config.
The generated Config is combined with the passed in extraConfiguration
to create a Plan that is used to create a database.
The output DB includes references to the temporary resources for
cleanup and the final plan that was used to generate the database and
processes
start :: IO (Either StartError DB) Source #
Default start behavior. Equivalent to calling startConfig with the
defaultConfig
Stop the postgres process and cleanup any temporary directories that
might have been created.
stopPostgres :: DB -> IO ExitCode Source #
Only stop the postgres process but leave any temporary resources.
Useful for testing backup strategies when used in conjunction with
restart or withRestart.
reloadConfig :: DB -> IO () Source #
Reload the configuration file without shutting down. Calls
pg_reload_conf().
Arguments
| :: Config |
|
| -> (DB -> IO a) |
|
| -> IO (Either StartError a) |
Exception safe default database create. Takes an action continuation
which is given a DB it can use to connect
to (see toConnectionString or postgresProcessClientConfig).
All of the database resources are automatically cleaned up on
completion even in the face of exceptions.
Arguments
| :: (DB -> IO a) |
|
| -> IO (Either StartError a) |
Default expectation safe interface. Equivalent to withConfig the
defaultConfig
withRestart :: DB -> (DB -> IO a) -> IO (Either StartError a) Source #
Exception safe version of restart
setCreateDb :: Config -> Accum PartialProcessConfig -> Config Source #
Set a Configs partialPlanCreateDb value.
setInitDb :: Config -> Accum PartialProcessConfig -> Config Source #
Set a Configs partialPlanInitDb value.