22 lines
932 B
Plaintext
22 lines
932 B
Plaintext
runConnectionPool :: MonadControlIO m => SqlPersist m a -> ConnectionPool -> m a
|
|
runConnectionPool = runSqlPool
|
|
|
|
withConnectionPool :: MonadControlIO m => AppConfig -> (ConnectionPool -> m a) -> m a
|
|
withConnectionPool conf f = do
|
|
cs <- liftIO $ loadConnStr (appEnv conf)
|
|
with~upper~Pool cs (connectionPoolSize conf) f
|
|
where
|
|
-- | The database connection string. The meaning of this string is backend-
|
|
-- specific.
|
|
loadConnStr :: AppEnvironment -> IO Text
|
|
loadConnStr env = do
|
|
allSettings <- (join $ YAML.decodeFile ("config/~backendLower~.yml" :: String)) >>= fromMapping
|
|
settings <- lookupMapping (show env) allSettings
|
|
lookupScalar "database" settings
|
|
|
|
-- Example of making a dynamic configuration static
|
|
-- use /return $(mkConnStr Production)/ instead of loadConnStr
|
|
-- mkConnStr :: AppEnvironment -> Q Exp
|
|
-- mkConnStr env = qRunIO (loadConnStr env) >>= return . LitE . StringL
|
|
|