diff --git a/src/PaymentServer/Persistence.hs b/src/PaymentServer/Persistence.hs index 8ec3753e0556cadf445eb7847fbd78d861b8a710..8e0b25eca7370f1adc1efac142065510a1befb57 100644 --- a/src/PaymentServer/Persistence.hs +++ b/src/PaymentServer/Persistence.hs @@ -467,13 +467,16 @@ upgradeSchema targetVersion conn = do errOrCurrentVersion <- readVersion conn case errOrCurrentVersion of Left err -> return $ Left err - Right currentVersion -> + Right currentVersion -> perhapsUpgrade targetVersion currentVersion + + where + perhapsUpgrade :: Int -> Int -> IO (Either UpgradeError ()) + perhapsUpgrade targetVersion currentVersion = case compareVersion targetVersion currentVersion of Lesser -> return $ Left DatabaseSchemaTooNew Equal -> return $ Right () Greater -> runUpgrades currentVersion targetVersion - where runUpgrades :: Int -> Int -> IO (Either UpgradeError ()) runUpgrades currentVersion targetVersion = let