Comment puis-je obtenir esqueleto pour générer une chaîne SQL à partir d'un from
déclaration?
La documentation de l' toRawSql
dit que "vous pouvez simplement activer la journalisation des requêtes persistantes". J'ai essayé toutes les formes possibles de l' MonadLogger
que je pourrais comprendre, mais il n'a jamais imprimé SQL. La documentation dit aussi "manuellement à l'aide de cette fonction ... est possible mais fastidieux". Cependant, aucun des constructeurs du type, ni aucune des fonctions retournant des valeurs du type, QueryType
sont exportés. J'ai réussi à contourner ce problème en remarquant que, QueryType
est newtype
et à l'aide de unsafeCoerce
!
J'ai été aussi obligé de fournir un Connection
(que j'ai obtenu via SQLite) même si il ne devrait pas être nécessaire de se connecter à une base de données pour générer le SQL.
C'est ce que j'ai. Il doit y avoir une meilleure façon.
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