Es ist einfach, DB-Aktionen im normalen Handler
-Workflow auszuführen, da die runDB
-Funktion verwendet werden kann, um die SqlPersistM
Aktionen in Handler
-Aktionen umzuwandeln.Wie kann ich die DB-Aktionen von Jessod in der REPL ausführen?
Aber es gibt keine solche Möglichkeit, SqlPersistM
direkt in IO
mit den Standard-App-Einstellungen zu konvertieren. Mit Blick auf die Foundation.hs
als im Anwendungsgerüst definiert sind, gibt es die folgende Instanz
instance YesodPersist App where
type YesodPersistBackend App = SqlBackend
runDB action = do
master <- getYesod
runSqlPool action $ appConnPool master
instance YesodPersistRunner App where
getDBRunner = defaultGetDBRunner appConnPool
die runSqlPool
verwendet grundsätzlich mit der Config-App, aber ich weiß nicht eine einfache Möglichkeit, sehen, wie diese zu nutzen, um die Konfiguration für den Zugriff auf Form innerhalb der REPL.
TL; DR: Was ich suche ist einfach in der Lage sein, etwas wie runDB $ selectList [...] [...]
aus Kabale repl in meinem Yesod App, zu tun, ohne die Einrichtung zu duplizieren, die Yesod Gerüst aus der Box der Fall ist.
Um zu verdeutlichen, verwenden Sie das Yesod-Gerüst? Wenn ja, können Sie [diese Funktionen] (https://github.com/yesodweb/yesod-scaffold/blob/bb7897b67021f42aa38c7f2fedd03be81f8980c9/Application.hs#L161-L171) verwenden, um Handler-Aktionen und DB-Abfragen auszuführen. Beispielverwendung: 'db $ selectList [UserName ==. "foo"] [] ' – MaxGabriel
@MaxGabriel Ich würde empfehlen, diesen Kommentar zu einer Antwort zu machen, es ist eine gute Demonstration, wie man Jakubs Ziel erreichen kann. –
Guten Ruf @MichaelSnoyman – MaxGabriel