packages feed

persistent 1.1.3 → 1.1.3.1

raw patch · 2 files changed

+14/−4 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

Database/Persist/GenericSql/Migration.hs view
@@ -32,7 +32,7 @@ import Control.Monad.Trans.Reader import Control.Monad.Trans.Writer import Control.Monad (liftM, unless)-import Data.Text (Text, unpack, snoc)+import Data.Text (Text, unpack, snoc, isPrefixOf, pack) import qualified Data.Text.IO import System.IO import Control.Monad.Logger (MonadLogger)@@ -101,7 +101,7 @@ runMigration' m silent = do     mig <- parseMigration' m     case unsafeSql mig of-        []   -> mapM (executeMigrate silent) $ safeSql mig+        []   -> mapM (executeMigrate silent) $ sortMigrations $ safeSql mig         errs -> error $ concat             [ "\n\nDatabase migration: manual intervention required.\n"             , "The following actions are considered unsafe:\n\n"@@ -113,13 +113,23 @@                    -> SqlPersist m () runMigrationUnsafe m = do     mig <- parseMigration' m-    mapM_ (executeMigrate False) $ allSql mig+    mapM_ (executeMigrate False) $ sortMigrations $ allSql mig  executeMigrate :: (MonadIO m, MonadLogger m) => Bool -> Text -> SqlPersist m Text executeMigrate silent s = do     unless silent $ liftIO $ hPutStrLn stderr $ "Migrating: " ++ unpack s     execute' s []     return s++-- | Sort the alter DB statements so tables are created before constraints are+-- added.+sortMigrations :: [Sql] -> [Sql]+sortMigrations x =+    filter isCreate x ++ filter (not . isCreate) x+  where+    -- Note the use of lower-case e. This (hack) allows backends to explicitly+    -- choose to have this special sorting applied.+    isCreate t = pack "CREATe " `isPrefixOf` t  migrate :: (MonadIO m, MBCIO m, PersistEntity val)         => [EntityDef]
persistent.cabal view
@@ -1,5 +1,5 @@ name:            persistent-version:         1.1.3+version:         1.1.3.1 license:         MIT license-file:    LICENSE author:          Michael Snoyman <michael@snoyman.com>