aboutsummaryrefslogtreecommitdiff
path: root/src/Database.hs
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