¿Cómo puedo hacer que esqueleto genere una cadena SQL a partir de una from
declaración?
La documentación de toRawSql
dice que "puede activar el registro de consultas de persistente". Intenté todas las formas posibles de MonadLogger
eso que pude entender, pero nunca imprimí ningún SQL. La misma documentación también dice "usar manualmente esta función ... es posible pero tedioso". Sin embargo, no QueryType
se exportan constructores del tipo ni funciones que devuelvan valores del tipo . ¡Me las arreglé para evitar esto notando que QueryType
es un newtype
y usando unsafeCoerce
!
También me vi obligado a proporcionar un Connection
(que obtuve a través de SQLite) aunque no debería haber necesidad de conectarse a una base de datos para generar el SQL.
Esto es lo que tengo. Debe haber una mejor manera.
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
instancias inferidas para generar cadenas SQL específicas de la base de datos .