dbmigrations 1.1 → 1.1.1
raw patch · 4 files changed
+18/−18 lines, 4 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- dbmigrations.cabal +1/−1
- src/Database/Schema/Migrations.hs +0/−1
- src/Moo/CommandUtils.hs +1/−0
- src/Moo/Core.hs +16/−16
dbmigrations.cabal view
@@ -1,5 +1,5 @@ Name: dbmigrations-Version: 1.1+Version: 1.1.1 Synopsis: An implementation of relational database "migrations" Description: A library and program for the creation, management, and installation of schema updates
src/Database/Schema/Migrations.hs view
@@ -20,7 +20,6 @@ import qualified Database.Schema.Migrations.Store as S import Database.Schema.Migrations.Migration ( Migration(..)- , newMigration ) -- |Given a 'B.Backend' and a 'S.MigrationMap', query the backend and
src/Moo/CommandUtils.hs view
@@ -10,6 +10,7 @@ , getCurrentTimestamp ) where +import Control.Applicative import Control.Exception ( bracket ) import Control.Monad ( when, forM_, unless ) import Control.Monad.Reader ( asks )
src/Moo/Core.hs view
@@ -16,7 +16,7 @@ import Data.List.Split (wordsBy) import Data.Char (isSpace)-import Control.Applicative ((<$>), (<*>))+import Control.Applicative import Control.Monad.Reader (ReaderT) import qualified Data.Configurator as C import Data.Configurator.Types (Config, Configured)@@ -25,7 +25,7 @@ import Database.HDBC.PostgreSQL (connectPostgreSQL) import Database.HDBC.Sqlite3 (connectSqlite3) import System.Environment (getEnvironment)-import Data.Maybe (isJust, fromMaybe)+import Data.Maybe (fromMaybe) import qualified Database.MySQL.Simple as MySQL import qualified Database.MySQL.Base as MySQLB @@ -79,15 +79,15 @@ newLoadConfig :: LoadConfig newLoadConfig = LoadConfig Nothing Nothing Nothing Nothing Nothing -isValidConfig :: LoadConfig -> Bool-isValidConfig (LoadConfig a b c _ _) = all isJust [a, b, c]--loadConfigToConfig :: LoadConfig -> Configuration-loadConfigToConfig (LoadConfig (Just cs) (Just dt) (Just msp) lm ts) =- Configuration cs dt msp- (fromMaybe False lm)- (fromMaybe False ts)-loadConfigToConfig _ = error "LoadConfig is invalid!"+validateLoadConfig :: LoadConfig -> Either String Configuration+validateLoadConfig (LoadConfig Nothing _ _ _ _) =+ Left "Invalid configuration: connection string not specified"+validateLoadConfig (LoadConfig _ Nothing _ _ _) =+ Left "Invalid configuration: database type not specified"+validateLoadConfig (LoadConfig _ _ Nothing _ _) =+ Left "Invalid configuration: migration store path not specified"+validateLoadConfig (LoadConfig (Just cs) (Just dt) (Just msp) lm ts) =+ Right $ Configuration cs dt msp (fromMaybe False lm) (fromMaybe False ts) -- |Setters for fields of 'LoadConfig'. lcConnectionString, lcDatabaseType, lcMigrationStorePath@@ -98,6 +98,8 @@ lcLinearMigrations :: LoadConfig -> Maybe Bool -> LoadConfig lcLinearMigrations c v = c { _lcLinearMigrations = v }++lcTimestampFilenames :: LoadConfig -> Maybe Bool -> LoadConfig lcTimestampFilenames c v = c { _lcTimestampFilenames = v } @@ -144,9 +146,7 @@ env <- getEnvironment cfg <- applyConfigFile file newLoadConfig >>= applyEnvironment env - if isValidConfig cfg- then return $ Right $ loadConfigToConfig cfg- else return $ Left "Configuration is invalid, check if everything is set."+ return $ validateLoadConfig cfg -- |Converts @Just "on"@ and @Just "true"@ (case insensitive) to @True@, -- anything else to @False@.@@ -195,8 +195,8 @@ [(map toLower (trimlr k),trimlr v) | kvPair <- wordsBy (== ';') connectionString :: [String] , let (k,v) = case wordsBy (== '=') kvPair of- (k:v:_) -> (k,v)- [k] -> (k,"")+ (k':v':_) -> (k',v')+ [k'] -> (k',"") [] -> error "impossible"] trimlr = takeWhile (not . isSpace) . dropWhile isSpace connInfo =