如何让esqueleto从from
语句生成SQL字符串?
的文档toRawSql
说:“您可以只打开持久性查询日志”。我尝试了所有可能MonadLogger
理解的形式,但从未打印任何SQL。同一文档还说“手动使用此功能...是可能的,但很乏味”。但是,不会QueryType
导出该类型的构造函数,也不会导出任何返回该类型的值的函数。我设法注意到QueryType
anewtype
并使用来解决这个问题unsafeCoerce
!
Connection
即使没有必要连接到数据库来生成SQL,我也不得不提供一个(通过SQLite获得)。
这就是我所拥有的。一定会有更好的办法。
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
实例来生成特定于数据库的SQL字符串。