Come posso ottenere esqueleto per generare una stringa SQL da fromun'istruzione?
La documentazione di toRawSqldice che "puoi semplicemente attivare la registrazione delle query di persistente". Ho provato tutte le forme possibili di MonadLoggerquello che potevo capire, ma non ha mai stampato alcun SQL. La stessa documentazione dice anche "usare manualmente questa funzione ... è possibile ma noioso". Tuttavia, non QueryTypevengono esportati né i costruttori del tipo né le funzioni che restituiscono valori del tipo . Sono riuscito a aggirare questo problema notando che QueryTypeè un newtypee 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
SqlPersististanze dedotte per generare stringhe SQL specifiche del database .