Wie kann ich esqueleto dazu bringen, eine SQL-Zeichenfolge aus einer from
Anweisung zu generieren ?
In der Dokumentation von toRawSql
heißt es, dass "Sie möglicherweise nur die Abfrageprotokollierung von persistent aktivieren". Ich habe alle möglichen Formen ausprobiert MonadLogger
, die ich verstehen konnte, aber es wurde nie SQL gedruckt. In derselben Dokumentation heißt es auch "Manuelles Verwenden dieser Funktion ... ist möglich, aber langwierig". Es werden jedoch weder Konstruktoren des Typs noch Funktionen QueryType
exportiert , die Werte des Typs zurückgeben . Ich habe es geschafft, dies zu umgehen, indem ich bemerkt habe, dass QueryType
es ein ist newtype
und verwendet unsafeCoerce
!
Ich war auch gezwungen, eine Connection
(die ich über SQLite erhalten habe) bereitzustellen , obwohl es nicht erforderlich sein sollte, eine Verbindung zu einer Datenbank herzustellen, um SQL zu generieren.
Das habe ich. Es muss einen besseren Weg geben.
withSqliteConn ":memory:" $
\conn -> return $ toRawSql SELECT
(unsafeCoerce ((const mempty)
:: a -> Text.Lazy.Builder.Builder))
(conn, initialIdentState) myFromStatement)
http://hackage.haskell.org/package/esqueleto-1.3.4.2/docs/Database-Esqueleto-Internal-Sql.html
SqlPersist
Instanzen verwendet, um datenbankspezifische SQL-Zeichenfolgen zu generieren.