blob: 1bc7a6b251185d902c25da3cbef0ab31cf7d981f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
{-# LANGUAGE OverloadedStrings #-}
module Database (runDb, runMigrations) where
import Control.Monad.Logger (runStderrLoggingT, LoggingT)
import Database.Persist.Sqlite (createSqlitePool, SqlBackend, runSqlPool, runMigration)
import Control.Monad.Reader (ReaderT)
import Data.User (migrateAll)
-- | Run a database query in the IO monad.
runDb :: ReaderT SqlBackend (LoggingT IO) a -> IO a
runDb query = runStderrLoggingT $ do
pool <- createSqlitePool "jamaa.db" 10
runSqlPool query pool
-- | Run database migrations.
runMigrations :: IO ()
runMigrations = runDb $ runMigration migrateAll
|