Bir from
ifadeden 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. MonadLogger
Anlayabildiğ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 QueryType
dışa aktarılmaz. Bunun QueryType
bir newtype
ve kullanarak olduğunu fark ederek bunu aşmayı başardım unsafeCoerce
!
Ayrıca Connection
SQL'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 .