module Main where
import IHP.Prelude
import IHP.SchemaMigration
import IHP.ModelSupport
import IHP.FrameworkConfig
import IHP.Log.Types
import Main.Utf8 (withUtf8)
import qualified IHP.EnvVar as EnvVar
main :: IO ()
main = withUtf8 do
frameworkConfig <- buildFrameworkConfig (pure ())
-- We need a debug logger to print out all sql queries during the migration.
-- The production env logger could be set to a different log level, therefore
-- we don't use the logger in 'frameworkConfig'
--
logger <- defaultLogger
modelContext <- createModelContext
frameworkConfig.dbPoolIdleTime
frameworkConfig.dbPoolMaxConnections
frameworkConfig.databaseUrl
logger
let ?modelContext = modelContext
minimumRevision <- EnvVar.envOrNothing "MINIMUM_REVISION"
migrate MigrateOptions { minimumRevision }
logger |> cleanup