Migrations
This commit is contained in:
21
src/Main.hs
21
src/Main.hs
@ -1,16 +1,35 @@
|
||||
{-# Language OverloadedStrings #-}
|
||||
{-# Language RecordWildCards #-}
|
||||
{-# Language DuplicateRecordFields #-}
|
||||
{-# Language TypeApplications #-}
|
||||
{-# Language DataKinds #-}
|
||||
module Main where
|
||||
|
||||
import Server (server)
|
||||
import Network.Wai.Handler.Warp (run)
|
||||
import Types
|
||||
import Configuration (Config)
|
||||
import Configuration
|
||||
import Dhall (input, auto)
|
||||
import System.Process (callProcess)
|
||||
import ClassyPrelude
|
||||
import Control.Lens (view)
|
||||
import Data.Generics.Product
|
||||
|
||||
defaultMain :: Config -> IO ()
|
||||
defaultMain c = run 8080 (server (App c))
|
||||
|
||||
migrate :: Pg -> IO ()
|
||||
migrate Pg{..} = do
|
||||
-- Credentials visible on ps
|
||||
-- XXX: Modify this to write the credentials to a temporary file or something
|
||||
callProcess "flyway" $ fmap unpack [ "migrate"
|
||||
, "-locations=filesystem:migrations/"
|
||||
, "-url=jdbc:postgresql://" <> host <> "/" <> database
|
||||
, "-user=" <> username
|
||||
, "-password=" <> password]
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
c <- input auto "./config/config.dhall"
|
||||
migrate (view (field @"database") c)
|
||||
defaultMain c
|
||||
|
Reference in New Issue
Block a user