diff --git a/yesod-auth/yesod-auth.cabal b/yesod-auth/yesod-auth.cabal index 7d25172c..7f5b218a 100644 --- a/yesod-auth/yesod-auth.cabal +++ b/yesod-auth/yesod-auth.cabal @@ -24,7 +24,7 @@ library , random >= 1.0.0.2 , text >= 0.7 , mime-mail >= 0.3 - , yesod-persistent >= 1.1 + , yesod-persistent >= 1.2 , hamlet >= 1.1 && < 1.2 , shakespeare-css >= 1.0 && < 1.1 , shakespeare-js >= 1.0.2 && < 1.2 @@ -32,8 +32,8 @@ library , unordered-containers , yesod-form >= 1.3 && < 1.4 , transformers >= 0.2.2 - , persistent >= 1.1 && < 1.2 - , persistent-template >= 1.1 && < 1.2 + , persistent >= 1.2 && < 1.3 + , persistent-template >= 1.2 && < 1.3 , SHA >= 1.4.1.3 , http-conduit >= 1.5 , aeson >= 0.5 diff --git a/yesod-form/Yesod/Form/Fields.hs b/yesod-form/Yesod/Form/Fields.hs index bd900870..bd675b56 100644 --- a/yesod-form/Yesod/Form/Fields.hs +++ b/yesod-form/Yesod/Form/Fields.hs @@ -61,8 +61,8 @@ import qualified Text.Email.Validate as Email import Data.Text.Encoding (encodeUtf8, decodeUtf8With) import Data.Text.Encoding.Error (lenientDecode) import Network.URI (parseURI) -import Database.Persist (PersistField) -import Database.Persist.Store (Entity (..)) +import Database.Persist.Sql (PersistField, PersistFieldSql) +import Database.Persist (Entity (..)) import Text.HTML.SanitizeXSS (sanitizeBalance) import Control.Monad (when, unless) import Data.Maybe (listToMaybe, fromMaybe) @@ -70,8 +70,7 @@ import Data.Maybe (listToMaybe, fromMaybe) import qualified Blaze.ByteString.Builder.Html.Utf8 as B import Blaze.ByteString.Builder (writeByteString, toLazyByteString) import Blaze.ByteString.Builder.Internal.Write (fromWriteList) -import Database.Persist.Store (PersistEntityBackend) -import Database.Persist.Store (PersistMonadBackend) +import Database.Persist (PersistMonadBackend, PersistEntityBackend) import Text.Blaze.Html.Renderer.String (renderHtml) import qualified Data.ByteString as S @@ -164,7 +163,7 @@ $newline never -- | A newtype wrapper around a 'Text' that converts newlines to HTML -- br-tags. newtype Textarea = Textarea { unTextarea :: Text } - deriving (Show, Read, Eq, PersistField, Ord) + deriving (Show, Read, Eq, PersistField, PersistFieldSql, Ord) instance ToHtml Textarea where toHtml = unsafeByteString diff --git a/yesod-form/yesod-form.cabal b/yesod-form/yesod-form.cabal index fcc16c74..f9b8731b 100644 --- a/yesod-form/yesod-form.cabal +++ b/yesod-form/yesod-form.cabal @@ -20,7 +20,7 @@ library , hamlet >= 1.1 && < 1.2 , shakespeare-css >= 1.0 && < 1.1 , shakespeare-js >= 1.0.2 && < 1.2 - , persistent >= 1.0 && < 1.2 + , persistent >= 1.2 && < 1.3 , template-haskell , transformers >= 0.2.2 , data-default diff --git a/yesod-persistent/Yesod/Persist.hs b/yesod-persistent/Yesod/Persist.hs index cafdc59e..b8b24d27 100644 --- a/yesod-persistent/Yesod/Persist.hs +++ b/yesod-persistent/Yesod/Persist.hs @@ -18,9 +18,8 @@ module Yesod.Persist ) where import Database.Persist -import Database.Persist.Store import Database.Persist.TH -import Database.Persist.GenericSql (SqlPersist, unSqlPersist) +import Database.Persist.Sql (SqlPersistT, unSqlPersistT) import Control.Monad.Trans.Reader (runReaderT) import Yesod.Core @@ -29,7 +28,7 @@ import Blaze.ByteString.Builder (Builder) import Data.IORef.Lifted import Data.Conduit.Pool import Control.Monad.Trans.Resource -import qualified Database.Persist.GenericSql.Internal as SQL +import qualified Database.Persist.Sql as SQL type YesodDB site = YesodPersistBackend site (HandlerT site IO) @@ -47,7 +46,7 @@ defaultRunDB :: PersistConfig c -> HandlerT site IO a defaultRunDB getConfig getPool f = do master <- getYesod - Database.Persist.Store.runPool + Database.Persist.runPool (getConfig master) f (getPool master) @@ -77,7 +76,7 @@ newtype DBRunner site = DBRunner -- | Helper for implementing 'getDBRunner'. -- -- Since 1.2.0 -defaultGetDBRunner :: YesodPersistBackend site ~ SqlPersist +defaultGetDBRunner :: YesodPersistBackend site ~ SqlPersistT => (site -> Pool SQL.Connection) -> HandlerT site IO (DBRunner site, HandlerT site IO ()) defaultGetDBRunner getPool = do @@ -87,12 +86,12 @@ defaultGetDBRunner getPool = do managedConn <- takeResource pool let conn = mrValue managedConn - let withPrep f = f conn (SQL.prepare conn) - (finishTransaction, ()) <- allocate (withPrep SQL.begin) $ \() -> do + let withPrep f = f conn (SQL.connPrepare conn) + (finishTransaction, ()) <- allocate (withPrep SQL.connBegin) $ \() -> do didSucceed <- readIORef ididSucceed withPrep $ if didSucceed - then SQL.commitC - else SQL.rollbackC + then SQL.connCommit + else SQL.connRollback let cleanup = do writeIORef ididSucceed True @@ -100,7 +99,7 @@ defaultGetDBRunner getPool = do mrReuse managedConn True mrRelease managedConn - return (DBRunner $ \x -> runReaderT (unSqlPersist x) conn, cleanup) + return (DBRunner $ \x -> runReaderT (unSqlPersistT x) conn, cleanup) -- | Like 'runDB', but transforms a @Source@. See 'respondSourceDB' for an -- example, practical use case. @@ -152,8 +151,8 @@ getBy404 key = do Nothing -> lift notFound Just res -> return res -instance MonadHandler m => MonadHandler (SqlPersist m) where - type HandlerSite (SqlPersist m) = HandlerSite m +instance MonadHandler m => MonadHandler (SqlPersistT m) where + type HandlerSite (SqlPersistT m) = HandlerSite m liftHandlerT = lift . liftHandlerT -instance MonadWidget m => MonadWidget (SqlPersist m) where +instance MonadWidget m => MonadWidget (SqlPersistT m) where liftWidgetT = lift . liftWidgetT diff --git a/yesod-persistent/yesod-persistent.cabal b/yesod-persistent/yesod-persistent.cabal index 5b512c1e..2298c040 100644 --- a/yesod-persistent/yesod-persistent.cabal +++ b/yesod-persistent/yesod-persistent.cabal @@ -15,8 +15,8 @@ description: Some helpers for using Persistent from Yesod. library build-depends: base >= 4 && < 5 , yesod-core >= 1.2 && < 1.3 - , persistent >= 1.1 && < 1.2 - , persistent-template >= 1.1 && < 1.2 + , persistent >= 1.2 && < 1.3 + , persistent-template >= 1.2 && < 1.3 , transformers >= 0.2.2 && < 0.4 , blaze-builder , conduit