Comment puis-je obtenir esqueleto pour générer une chaîne SQL à partir d'une from
instruction?
La documentation de toRawSql
dit que "vous pouvez simplement activer la journalisation des requêtes de persistant". J'ai essayé toutes les formes possibles MonadLogger
que je pouvais comprendre, mais cela n'a jamais imprimé de SQL. La même documentation dit également que "l'utilisation manuelle de cette fonction ... est possible mais fastidieuse". Cependant, aucun constructeur du type, ni aucune fonction renvoyant des valeurs du type, ne QueryType
sont exportés. J'ai réussi à contourner cela en remarquant que QueryType
c'est un newtype
et en utilisant unsafeCoerce
!
J'ai également été obligé de fournir un Connection
(que j'ai obtenu via SQLite) même s'il ne devrait pas être nécessaire de me connecter à une base de données pour générer le SQL.
Voilà ce que j'ai. Il doit y avoir un meilleur moyen.
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
instances inférées pour générer des chaînes SQL spécifiques à la base de données .