packages feed

ihp-migrate-1.4.0: Migrate.hs

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