Como posso fazer o esqueleto gerar uma string SQL a partir de uma from
instrução?
A documentação do toRawSql
diz que "você pode simplesmente ativar o log de consultas de persistente". Tentei todas as formas possíveis MonadLogger
que pude entender, mas nunca imprimi nenhum SQL. A mesma documentação também diz "manualmente usar esta função ... é possível, mas tedioso". No entanto, nenhum construtor do tipo, nem nenhuma função que retorne valores do tipo, QueryType
é exportado. Consegui contornar isso observando que QueryType
é um newtype
e usando unsafeCoerce
!
Também fui forçado a fornecer um Connection
(que obtive via SQLite), embora não deva haver necessidade de conectar-se a um banco de dados para gerar o SQL.
Isso é o que eu tenho. Deve haver uma maneira melhor.
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
instâncias inferidas para gerar strings SQL específicas do banco de dados .