mallard 0.6.0.4 → 0.6.1.0
raw patch · 5 files changed
+22/−20 lines, 5 filesdep ~megaparsecPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: megaparsec
API changes (from Hackage documentation)
- Database.Mallard.Parser: ParserException :: (Path Abs File) -> ParseError Char Dec -> ParserException
+ Database.Mallard.Parser: ParserException :: (Path Abs File) -> ParseError Char Void -> ParserException
- Database.Mallard.Parser: [_peError] :: ParserException -> ParseError Char Dec
+ Database.Mallard.Parser: [_peError] :: ParserException -> ParseError Char Void
- Database.Mallard.Types: class HasMigration c_anTR where migrationChecksum = (.) migration migrationChecksum migrationDescription = (.) migration migrationDescription migrationName = (.) migration migrationName migrationRequires = (.) migration migrationRequires migrationScript = (.) migration migrationScript
+ Database.Mallard.Types: class HasMigration c_anHr where migrationChecksum = (.) migration migrationChecksum migrationDescription = (.) migration migrationDescription migrationName = (.) migration migrationName migrationRequires = (.) migration migrationRequires migrationScript = (.) migration migrationScript
- Database.Mallard.Types: class HasTest c_ao4s where testDescription = (.) test testDescription testName = (.) test testName testScript = (.) test testScript
+ Database.Mallard.Types: class HasTest c_anS2 where testDescription = (.) test testDescription testName = (.) test testName testScript = (.) test testScript
- Database.Mallard.Types: migration :: HasMigration c_anTR => Lens' c_anTR Migration
+ Database.Mallard.Types: migration :: HasMigration c_anHr => Lens' c_anHr Migration
- Database.Mallard.Types: migrationChecksum :: HasMigration c_anTR => Lens' c_anTR MigrationDigest
+ Database.Mallard.Types: migrationChecksum :: HasMigration c_anHr => Lens' c_anHr MigrationDigest
- Database.Mallard.Types: migrationDescription :: HasMigration c_anTR => Lens' c_anTR Text
+ Database.Mallard.Types: migrationDescription :: HasMigration c_anHr => Lens' c_anHr Text
- Database.Mallard.Types: migrationName :: HasMigration c_anTR => Lens' c_anTR MigrationId
+ Database.Mallard.Types: migrationName :: HasMigration c_anHr => Lens' c_anHr MigrationId
- Database.Mallard.Types: migrationRequires :: HasMigration c_anTR => Lens' c_anTR [MigrationId]
+ Database.Mallard.Types: migrationRequires :: HasMigration c_anHr => Lens' c_anHr [MigrationId]
- Database.Mallard.Types: migrationScript :: HasMigration c_anTR => Lens' c_anTR Text
+ Database.Mallard.Types: migrationScript :: HasMigration c_anHr => Lens' c_anHr Text
- Database.Mallard.Types: test :: HasTest c_ao4s => Lens' c_ao4s Test
+ Database.Mallard.Types: test :: HasTest c_anS2 => Lens' c_anS2 Test
- Database.Mallard.Types: testDescription :: HasTest c_ao4s => Lens' c_ao4s Text
+ Database.Mallard.Types: testDescription :: HasTest c_anS2 => Lens' c_anS2 Text
- Database.Mallard.Types: testName :: HasTest c_ao4s => Lens' c_ao4s TestId
+ Database.Mallard.Types: testName :: HasTest c_anS2 => Lens' c_anS2 TestId
- Database.Mallard.Types: testScript :: HasTest c_ao4s => Lens' c_ao4s Text
+ Database.Mallard.Types: testScript :: HasTest c_anS2 => Lens' c_anS2 Text
Files
- README.md +1/−1
- app/Mallard.hs +2/−2
- lib/Database/Mallard/File.hs +2/−2
- lib/Database/Mallard/Parser.hs +15/−13
- mallard.cabal +2/−2
README.md view
@@ -1,4 +1,4 @@-# Mallard+# [Mallard](https://en.wikipedia.org/wiki/Mallard) No frills migration for relational databases. Usable as either an application or library.
app/Mallard.hs view
@@ -20,7 +20,7 @@ import qualified Hasql.Connection as Sql import Hasql.Options.Applicative import qualified Hasql.Pool as Pool-import Options.Applicative hiding (Parser, runParser)+import Options.Applicative hiding (Parser) import Options.Applicative import Options.Applicative.Text import Path@@ -68,7 +68,7 @@ <> header "mallard - applies SQL database migrations." ) parseRelOrAbsDir :: (MonadThrow m, MonadCatch m, MonadIO m) => FilePath -> m (Path Abs Dir)-parseRelOrAbsDir file = parseAbsDir file `catch` (\(_::PathParseException) -> makeAbsolute =<< parseRelDir file)+parseRelOrAbsDir file = parseAbsDir file `catch` (\(_::PathException) -> makeAbsolute =<< parseRelDir file) run :: (MonadIO m, MonadCatch m, MonadReader AppOptions m, MonadState AppState m, MonadThrow m) => m () run = do
lib/Database/Mallard/File.hs view
@@ -10,9 +10,9 @@ import Control.Lens import Control.Monad.Catch import Control.Monad.Reader-import qualified Data.ByteString as BS import Data.Foldable import qualified Data.HashMap.Strict as Map+import qualified Data.Text.IO as T import Database.Mallard.Parser import Database.Mallard.Types import Path@@ -39,7 +39,7 @@ importFile' :: (MonadIO m, MonadThrow m) => Path Abs File -> m [Action] importFile' file = do- fileContent <- liftIO $ BS.readFile (toFilePath file)+ fileContent <- liftIO $ T.readFile (toFilePath file) let parseResult = runParser parseActions (toFilePath file) fileContent case parseResult of Left er -> throw $ ParserException file er
lib/Database/Mallard/Parser.hs view
@@ -21,11 +21,12 @@ import Data.Text (Text) import qualified Data.Text as T import qualified Data.Text.Encoding as T+import Data.Void import Database.Mallard.Types import Path import Text.Megaparsec hiding (parseTest, tab)-import Text.Megaparsec.ByteString-import qualified Text.Megaparsec.Lexer as L+import Text.Megaparsec.Char hiding (tab)+import qualified Text.Megaparsec.Char.Lexer as L data Action = ActionMigration Migration@@ -38,6 +39,8 @@ = TextField Text | ListField [Text] +type Parser = Parsec Void Text+ -- Lexer spaceConsumer :: Parser ()@@ -45,31 +48,31 @@ where space' = void (try spaceChar <|> char '-') -symbol :: String -> Parser String+symbol :: Text -> Parser Text symbol = L.symbol spaceConsumer -symbol' :: String -> Parser String+symbol' :: Text -> Parser Text symbol' = L.symbol' spaceConsumer brackets :: Parser a -> Parser a brackets = between (symbol "[") (symbol "]") -comma :: Parser String+comma :: Parser Text comma = symbol "," -colon :: Parser String+colon :: Parser Text colon = symbol ":" -semiColon :: Parser String+semiColon :: Parser Text semiColon = symbol ";" -migrationS :: Parser String+migrationS :: Parser Text migrationS = symbol' "migration" -testS :: Parser String+testS :: Parser Text testS = symbol' "test" -sbang :: Parser String+sbang :: Parser Text sbang = symbol "#!" sbangOrEof :: Parser ()@@ -170,7 +173,7 @@ data ParserException = ParserException { _peFile :: (Path Abs File)- , _peError :: ParseError Char Dec+ , _peError :: ParseError Char Void } deriving (Show) @@ -180,6 +183,5 @@ $tab$Line: $:sourceLine (NonEmpty.head (errorPos (_peError e)))$ $tab$Column: $:sourceColumn (NonEmpty.head (errorPos (_peError e)))$- $tab$Expected: $:errorExpected (_peError e)$- $tab$Occurred: $:errorUnexpected (_peError e)$+ $tab$Item: $:_peError e$ |]
mallard.cabal view
@@ -1,5 +1,5 @@ name: mallard-version: 0.6.0.4+version: 0.6.1.0 synopsis: Database migration and testing as a library. description: Please see README.md homepage: https://github.com/AndrewRademacher/mallard@@ -44,7 +44,7 @@ , hasql-transaction , Interpolation , lens- , megaparsec <6+ , megaparsec >= 6 && < 7 , mtl , path , path-io