diff --git a/demo/Main.hs b/demo/Main.hs
--- a/demo/Main.hs
+++ b/demo/Main.hs
@@ -1,5 +1,7 @@
 module Main where
 
+import           Model
+
 import           Yam.Logger
 import           Yam.Transaction
 import           Yam.Web
@@ -40,4 +42,5 @@
 main = do
   ys <- defaultYamSettings
   logger (loggers ys) INFO (toLogStr (show ys) <> "\n")
+  runDbIO ys migrateSql
   runServer ys (Proxy :: Proxy UserApi) (userService :<|> errorService :<|> servantService :<|> dbService)
diff --git a/demo/Model.hs b/demo/Model.hs
new file mode 100644
--- /dev/null
+++ b/demo/Model.hs
@@ -0,0 +1,32 @@
+{-# LANGUAGE QuasiQuotes     #-}
+{-# LANGUAGE TemplateHaskell #-}
+
+module Model where
+
+import           Yam.Transaction
+
+import           Control.Monad.IO.Class (MonadIO)
+import           Data.Text              (Text)
+import           Data.Time.Clock        (UTCTime)
+import           Database.Persist.Sql
+import           Database.Persist.TH
+
+share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|
+EntityAlert json sql=t_alert
+  key        Text
+  result     Text
+  notifyKey  Text Maybe
+  alert      Bool
+  createTime UTCTime
+  deriving Show
+
+EntityAlertNotification json sql=t_alert_notification
+  notifyKey  Text
+  key        Text
+  alertId    EntityAlertId
+  createTime UTCTime
+  EntityAlertNotificationUniqueKey notifyKey key
+|]
+
+migrateSql :: MonadIO m => Transaction m ()
+migrateSql = runMigration migrateAll
diff --git a/src/Yam/Web.hs b/src/Yam/Web.hs
--- a/src/Yam/Web.hs
+++ b/src/Yam/Web.hs
@@ -8,6 +8,7 @@
   , Yam
   , defaultYamSettings
   , runDb
+  , runDbIO
   , runServer
   ) where
 
@@ -24,6 +25,7 @@
 import           Control.Exception          (finally, throw)
 import           Control.Monad.IO.Unlift
 import           Control.Monad.Trans.Except (runExceptT)
+import           Control.Monad.Trans.Reader (ReaderT, runReaderT)
 import           Data.Aeson
 import           Data.Default
 import           Data.Monoid                ((<>))
@@ -90,6 +92,11 @@
   case dataSources of
     Nothing -> error $ "Datasource disabled"
     Just ds -> runTrans ds r
+
+runDbIO :: YamSettings -> Transaction (ReaderT LoggerConfig IO) () -> IO ()
+runDbIO YamSettings{..} r = case dataSources of
+  Nothing -> return ()
+  Just v  -> runReaderT (runTrans v r) loggers
 
 runServer :: (HasSwagger api, HasServer api '[YamSettings]) => YamSettings -> Proxy api -> ServerT api Yam -> IO ()
 runServer ys@YamSettings{..} p a = run port (mkServeWithSwagger p Proxy (ys :. EmptyContext) Proxy ys middlewares swaggers a) `finally` go loggers dataSources
diff --git a/yam-web.cabal b/yam-web.cabal
--- a/yam-web.cabal
+++ b/yam-web.cabal
@@ -2,10 +2,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 0b72633679c8414dad55b9d67c58c29ccc14a7bcda4fb05be0e849f4163e17a0
+-- hash: 90996c2a545d34b4c05940d0cfe69fec3a74b8b3a610f6fad37ef445c7f03da8
 
 name:           yam-web
-version:        0.3.2
+version:        0.3.3
 synopsis:       Yam Web
 description:    base web module for yam
 category:       Project
@@ -59,7 +59,7 @@
 executable yam-web
   main-is: Main.hs
   other-modules:
-      Paths_yam_web
+      Model
   hs-source-dirs:
       demo
   default-extensions: AutoDeriveTypeable BangPatterns BinaryLiterals ConstraintKinds DataKinds DefaultSignatures DeriveDataTypeable DeriveFoldable DeriveFunctor DeriveGeneric DeriveTraversable DuplicateRecordFields DoAndIfThenElse EmptyDataDecls ExistentialQuantification FlexibleContexts FlexibleInstances FunctionalDependencies GADTs GeneralizedNewtypeDeriving InstanceSigs KindSignatures LambdaCase MonadFailDesugaring MultiParamTypeClasses MultiWayIf NamedFieldPuns OverloadedStrings PartialTypeSignatures PatternGuards PolyKinds RankNTypes RecordWildCards ScopedTypeVariables StandaloneDeriving TupleSections TypeApplications TypeFamilies TypeOperators TypeSynonymInstances ViewPatterns
@@ -69,6 +69,8 @@
     , base >=4.7 && <5
     , data-default
     , lens
+    , persistent
+    , persistent-template
     , reflection
     , servant-server
     , servant-swagger
@@ -76,6 +78,7 @@
     , string-conversions
     , swagger2
     , text
+    , time
     , transformers
     , unliftio-core
     , vault
