packages feed

hasql-migration 0.2.0 → 0.3.0

raw patch · 4 files changed

+15/−15 lines, 4 filesdep −data-default-classdep ~hasqlPVP ok

version bump matches the API change (PVP)

Dependencies removed: data-default-class

Dependency ranges changed: hasql

API changes (from Hackage documentation)

Files

hasql-migration.cabal view
@@ -1,5 +1,5 @@ name:                       hasql-migration-version:                    0.2.0+version:                    0.3.0 synopsis:                   PostgreSQL Schema Migrations homepage:                   https://github.com/tvh/hasql-migration Bug-reports:                https://github.com/tvh/hasql-migration/issues@@ -12,7 +12,7 @@ build-type:                 Simple cabal-version:              >= 1.10 description:                A PostgreSQL-simple schema migration utility-tested-with:                GHC==8.0.1, GHC==8.2.2, GHC==8.4.3+tested-with:                GHC==8.0.1, GHC==8.2.2, GHC==8.4.3, GHC==8.6.5 extra-source-files:         License                             Readme.markdown @@ -36,9 +36,8 @@                             bytestring                  >= 0.10,                             contravariant               >= 1.3,                             cryptonite                  >= 0.11,-                            data-default-class          >= 0.0.1,                             directory                   >= 1.2,-                            hasql                       >= 1.3,+                            hasql                       >= 1.4,                             hasql-transaction           >= 0.7,                             memory,                             text                        >= 1.2,
src/Hasql/Migration.hs view
@@ -34,10 +34,8 @@     , SchemaMigration(..)     ) where -import Control.Arrow import Crypto.Hash (hashWith, MD5(..)) import Data.ByteArray.Encoding-import Data.Default.Class import Data.Functor.Contravariant import Data.List (isPrefixOf, sort) import Data.Time (LocalTime)@@ -46,6 +44,7 @@ import Hasql.Statement import Hasql.Transaction import System.Directory (getDirectoryContents)+import Data.Semigroup ((<>)) import qualified Data.ByteString as BS (ByteString, readFile) import qualified Data.Text as T import qualified Data.Text.Encoding as T@@ -95,12 +94,13 @@             return Nothing         ScriptNotExecuted -> do             sql contents-            statement (name, checksum) (Statement q (contramap (first T.pack) def) Decoders.unit False)+            statement (name, checksum) (Statement q enc Decoders.noResult False)             return Nothing         ScriptModified _ -> do             return (Just $ ScriptChanged name)     where         q = "insert into schema_migrations(filename, checksum) values($1, $2)"+        enc = ((T.pack . fst) >$< Encoders.param (Encoders.nonNullable Encoders.text)) <> (snd >$< Encoders.param (Encoders.nonNullable Encoders.text))  -- | Initializes the database schema with a helper table containing -- meta-information about executed migrations.@@ -147,7 +147,8 @@ -- will be executed and its meta-information will be recorded. checkScript :: ScriptName -> Checksum -> Transaction CheckScriptResult checkScript name checksum =-    statement name (Statement q (contramap T.pack (Encoders.param def)) (Decoders.rowMaybe (Decoders.column def)) False) >>= \case+    statement name (Statement q (contramap T.pack (Encoders.param (Encoders.nonNullable Encoders.text))) +        (Decoders.rowMaybe (Decoders.column (Decoders.nonNullable Decoders.text))) False) >>= \case         Nothing ->             return ScriptNotExecuted         Just actualChecksum | checksum == actualChecksum ->@@ -201,7 +202,7 @@ -- | Produces a list of all executed 'SchemaMigration's. getMigrations :: Transaction [SchemaMigration] getMigrations =-    statement () $ Statement q def (Decoders.rowList decodeSchemaMigration) False+    statement () $ Statement q Encoders.noParams (Decoders.rowList decodeSchemaMigration) False     where         q = mconcat             [ "select filename, checksum, executed_at "@@ -225,6 +226,6 @@ decodeSchemaMigration :: Decoders.Row SchemaMigration decodeSchemaMigration =     SchemaMigration-    <$> Decoders.column def-    <*> Decoders.column def-    <*> Decoders.column def+    <$> Decoders.column (Decoders.nonNullable Decoders.bytea)+    <*> Decoders.column (Decoders.nonNullable Decoders.text)+    <*> Decoders.column (Decoders.nonNullable Decoders.timestamp)
src/Hasql/Migration/Util.hs view
@@ -21,12 +21,11 @@ import qualified Hasql.Decoders as Decoders import           Hasql.Transaction (statement, Transaction) import Data.Text (Text)-import Data.Default.Class  -- | Checks if the table with the given name exists in the database. existsTable :: Text -> Transaction Bool existsTable table =     fmap (not . null) $ statement table q     where-        q = Statement sql (Encoders.param def) (Decoders.rowList (Decoders.column Decoders.int8)) False+        q = Statement sql (Encoders.param (Encoders.nonNullable Encoders.text)) (Decoders.rowList (Decoders.column (Decoders.nullable Decoders.int8))) False         sql = "select relname from pg_class where relname = $1"
test/Hasql/MigrationTest.hs view
@@ -31,7 +31,8 @@ migrationSpec con = describe "Migrations" $ do     let migrationScript = MigrationScript "test.sql" q     let migrationScriptAltered = MigrationScript "test.sql" ""-    [migrationDir] <- runIO $ loadMigrationsFromDirectory "share/test/scripts"+    mds <- runIO $ loadMigrationsFromDirectory "share/test/scripts"+    let migrationDir = head mds      migrationFile <- runIO $ loadMigrationFromFile "s.sql" "share/test/script.sql"      it "initializes a database" $ do