如何从from
语句中生成esqueleto以生成SQL字符串?
文档toRawSql
说"你可能只是打开持久性的查询记录".我尝试了所有可能的形式MonadLogger
,但我从未打印过任何SQL.同样的文档也说"手动使用这个功能......可能但很乏味".但是,不会QueryType
导出该类型的构造函数,也不会导出返回该类型值的任何函数.我设法通过注意这QueryType
是一个newtype
和使用来解决这个问题unsafeCoerce
!
我也被迫提供Connection
(我通过SQLite获得),即使不需要连接到数据库来生成SQL.
这就是我所拥有的.肯定有更好的办法.
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