Bir fromifadeden bir SQL dizesi oluşturmak için esqueleto'yu nasıl edinebilirim ?
Belgeleri, toRawSql"kalıcı sorgu günlük kaydını açabilirsiniz" diyor. MonadLoggerAnlayabildiğim tüm olası biçimlerini denedim , ancak hiçbir SQL yazmadı. Aynı dokümantasyon ayrıca "bu işlevi manuel olarak kullanmak ... mümkündür ama sıkıcıdır" diyor. Ancak, türün kurucuları veya türün değerlerini döndüren işlevler QueryTypedışa aktarılmaz. Bunun QueryTypebir newtypeve kullanarak olduğunu fark ederek bunu aşmayı başardım unsafeCoerce!
Ayrıca ConnectionSQL'i oluşturmak için bir veritabanına bağlanmaya gerek olmamasına rağmen bir (SQLite aracılığıyla aldığım) sağlamak zorunda kaldım .
Elimde olan bu. Daha iyi bir yolu olmalı.
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özgü SQL dizeleri oluşturmak için çıkarılan örnekler kullanması olduğuna inanıyorum .