Jak*_*old 6 haskell persistent yesod
在正常Handler工作流中很容易运行数据库操作,因为该runDB功能可用于将SqlPersistM操作转换为操作Handler.
但是没有这种方法可以SqlPersistM直接转换为IO使用默认的应用程序设置.查看Foundation.hs应用程序脚手架中定义的内容,有以下实例
instance YesodPersist App where
type YesodPersistBackend App = SqlBackend
runDB action = do
master <- getYesod
runSqlPool action $ appConnPool master
instance YesodPersistRunner App where
getDBRunner = defaultGetDBRunner appConnPool
Run Code Online (Sandbox Code Playgroud)
它基本上runSqlPool与应用程序的配置一起使用,但我没有看到如何利用它来访问REPL中的配置表单的简单方法.
TL; DR:我正在寻找的只是能够runDB $ selectList [...] [...]在我的Yesod应用程序中从cabal repl中执行某些操作,而无需复制Yesod脚手架开箱即用的设置.
如果您使用的是Yesod脚手架,则提供handler和db功能可让您分别从repl运行处理程序操作和数据库查询:
$ cabal repl
db $ selectList [UserName ==. "foo"] []
Run Code Online (Sandbox Code Playgroud)
编辑:我还使用此信息更新了GHCi上Yesod的Wiki页面。它包括更多示例,并涵盖了一些高级用法,例如使用调试器。
| 归档时间: |
|
| 查看次数: |
227 次 |
| 最近记录: |