Bagaimana saya bisa membuat esqueleto menghasilkan string SQL dari from
pernyataan?
Dokumentasi toRawSql
mengatakan bahwa "Anda hanya dapat mengaktifkan pencatatan kueri yang persisten". Saya mencoba semua kemungkinan bentuk MonadLogger
yang bisa saya mengerti, tetapi tidak pernah mencetak SQL apa pun. Dokumentasi yang sama juga mengatakan "secara manual menggunakan fungsi ini ... mungkin tetapi membosankan". Namun, tidak ada konstruktor tipe, atau fungsi apa pun yang mengembalikan nilai tipe, QueryType
yang diekspor. Saya berhasil menyiasati ini dengan memperhatikan bahwa QueryType
a newtype
dan menggunakan unsafeCoerce
!
Saya juga dipaksa untuk menyediakan Connection
(yang saya dapatkan melalui SQLite) meskipun seharusnya tidak perlu terhubung ke database untuk menghasilkan SQL.
Inilah yang saya punya. Pasti ada cara yang lebih baik.
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
contoh yang disimpulkan untuk menghasilkan string SQL khusus database.