module Database.Migrations ( defaultMain , module Database.Sequel ) where import Prelude hiding (catch) import Control.Exception import Database.Connection import Database.Sequel import Database.PostgreSQL.Simple import System.Environment defaultMain :: Sequel () -> Sequel () -> IO () defaultMain up down = do dbURI <- catch (getEnv "DATABASE_URL") (const $ return "postgres://" :: SomeException -> IO String) createConnection $ parseDbURL dbURI args <- getArgs case args of "--rollback":_ -> runSequel down >>= withConnection . (flip execute_) _ -> runSequel up >>= withConnection . (flip execute_) return ()