gpt4 book ai didi

haskell - 如何在 REPL 中运行 Yesod 的数据库操作?

转载 作者:行者123 更新时间:2023-12-04 15:10:39 25 4
gpt4 key购买 nike

在正常的 Handler 工作流中运行 DB 操作很容易,因为 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

它基本上将 runSqlPool 与应用程序的配置一起使用,但我没有看到一种简单的方法来利用它来访问 REPL 中的配置表单。

TL;DR: 我正在寻找的只是能够在我的 Yesod 应用程序 中的 cabal repl 中执行类似 runDB $ selectList [...] [...] 的操作,而无需复制 Yesod 脚手架开箱即用的设置。

最佳答案

如果您使用 Yesod 脚手架, handler and db functions提供了让您分别从 repl 运行处理程序操作和数据库查询:

$ cabal repl

db $ selectList [UserName ==. "foo"] []

编辑:我也更新了 Yesod's wiki page on GHCi有了这些信息。它包含更多示例并涵盖了一些高级用法,例如使用调试器。

关于haskell - 如何在 REPL 中运行 Yesod 的数据库操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28487676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com