Bagaimana saya bisa membuat esqueleto menghasilkan string SQL dari frompernyataan?
Dokumentasi toRawSqlmengatakan bahwa "Anda hanya dapat mengaktifkan pencatatan kueri yang persisten". Saya mencoba semua kemungkinan bentuk MonadLoggeryang 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, QueryTypeyang diekspor. Saya berhasil menyiasati ini dengan memperhatikan bahwa QueryTypea newtypedan 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
SqlPersistcontoh yang disimpulkan untuk menghasilkan string SQL khusus database.