Come posso ottenere esqueleto per generare una stringa SQL da from
un'istruzione?
La documentazione di toRawSql
dice che "puoi semplicemente attivare la registrazione delle query di persistente". Ho provato tutte le forme possibili di MonadLogger
quello che potevo capire, ma non ha mai stampato alcun SQL. La stessa documentazione dice anche "usare manualmente questa funzione ... è possibile ma noioso". Tuttavia, non QueryType
vengono esportati né i costruttori del tipo né le funzioni che restituiscono valori del tipo . Sono riuscito a aggirare questo problema notando che QueryType
è un newtype
e usando unsafeCoerce
!
Sono stato anche costretto a fornire un Connection
(che ho ottenuto tramite SQLite) anche se non dovrebbe essere necessario connettersi a un database per generare l'SQL.
Questo è quello che ho. Deve esserci un modo migliore.
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
istanze dedotte per generare stringhe SQL specifiche del database .