diff --git a/src/Yam/DataSource.hs b/src/Yam/DataSource.hs
--- a/src/Yam/DataSource.hs
+++ b/src/Yam/DataSource.hs
@@ -1,6 +1,6 @@
 module Yam.DataSource(
   -- * DataSource Types
-    DataSourceProvider
+    DataSourceProvider(..)
   , DataSource
   , DB
   -- * Primary DataSource Functions
@@ -30,7 +30,11 @@
 dataSourceKey :: Key DataSource
 dataSourceKey = unsafePerformIO newKey
 
-type DataSourceProvider = LoggingT IO DataSource
+data DataSourceProvider = DataSourceProvider
+  { datasource :: LoggingT IO DataSource
+  , migration  :: DB (LoggingT IO) ()
+  , dbtype     :: Text
+  }
 -- SqlPersistT ~ ReaderT SqlBackend
 type DB = SqlPersistT
 
@@ -60,12 +64,18 @@
 
 {-# INLINE runInDB #-}
 runInDB :: LogFunc -> DataSourceProvider -> (DataSource -> IO a) -> IO a
-runInDB logfunc f g = bracket (runLoggingT f logfunc) destroyAllResources g
+runInDB logfunc DataSourceProvider{..} action =
+  bracket (runLoggingT datasource logfunc) destroyAllResources $ \ds -> do
+    runLoggingT (runDB ds migration) logfunc
+    action ds
 
 datasourceMiddleware :: Key DataSource -> DataSourceProvider -> AppMiddleware
 datasourceMiddleware k dsp = AppMiddleware $ \env f -> do
   lf <- askLoggerIO
-  logInfo "Datasource Initialized..."
-  liftIO $ runInDB lf dsp $ \ds -> runLoggingT (f (setAttr k ds env, id)) lf
+  logInfo $ "Datasource " <> dbtype dsp <> " Initialized..."
+  liftIO  $ runInDB lf dsp $ \ds -> runLoggingT (f (setAttr k ds env, id)) lf
 
 primaryDatasourceMiddleware = datasourceMiddleware dataSourceKey
+
+
+
diff --git a/yam-datasource.cabal b/yam-datasource.cabal
--- a/yam-datasource.cabal
+++ b/yam-datasource.cabal
@@ -1,40 +1,45 @@
 cabal-version: 1.12
-
--- This file has been generated from package.yaml by hpack version 0.31.1.
---
--- see: https://github.com/sol/hpack
---
--- hash: da4d905c8e8eb99f485ad5bb9ff89a2b445a96c7e83f80d5baea9bf69bff3e6e
-
-name:           yam-datasource
-version:        0.5.2
-synopsis:       Yam DataSource Middleware
-category:       Web
-homepage:       https://github.com/leptonyu/yam/yam-datasource#readme
-author:         Daniel YU
-maintainer:     Daniel YU <leptonyu@gmail.com>
-copyright:      (c) Daniel YU
-license:        BSD3
-license-file:   LICENSE
-build-type:     Simple
+name: yam-datasource
+version: 0.5.3
+license: BSD3
+license-file: LICENSE
+copyright: (c) Daniel YU
+maintainer: Daniel YU <leptonyu@gmail.com>
+author: Daniel YU
+homepage: https://github.com/leptonyu/yam/yam-datasource#readme
+synopsis: Yam DataSource Middleware
+category: Web
+build-type: Simple
 extra-source-files:
     README.md
 
 library
-  exposed-modules:
-      Yam.DataSource
-  other-modules:
-      Paths_yam_datasource
-  hs-source-dirs:
-      src
-  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
-  ghc-options: -Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -fno-warn-orphans -fno-warn-missing-signatures
-  build-depends:
-      base >=4.7 && <5
-    , conduit
-    , persistent
-    , resource-pool
-    , resourcet
-    , unliftio-core
-    , yam
-  default-language: Haskell2010
+    exposed-modules:
+        Yam.DataSource
+    hs-source-dirs: src
+    other-modules:
+        Paths_yam_datasource
+    default-language: Haskell2010
+    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
+    ghc-options: -Wall -Wcompat -Wincomplete-record-updates
+                 -Wincomplete-uni-patterns -Wredundant-constraints -fno-warn-orphans
+                 -fno-warn-missing-signatures
+    build-depends:
+        base >=4.7 && <5,
+        conduit >=1.3.1 && <1.4,
+        persistent >=2.9.0 && <2.10,
+        resource-pool >=0.2.3.2 && <0.3,
+        resourcet >=1.2.2 && <1.3,
+        unliftio-core >=0.1.2.0 && <0.2,
+        yam >=0.5.3 && <0.6
