मैं एक fromस्टेटमेंट से एसक्यूएल स्ट्रिंग उत्पन्न करने के लिए एस्केलेटो कैसे प्राप्त कर सकता हूं ?
दस्तावेज़ का toRawSqlकहना है कि "आप बस निरंतर की लॉगिंग चालू कर सकते हैं"। मैंने इसके सभी संभावित रूपों की कोशिश की, MonadLoggerजिसे मैं समझ सकता था, लेकिन इसने कभी किसी SQL को नहीं छापा। वही प्रलेखन यह भी कहता है "मैन्युअल रूप से इस फ़ंक्शन का उपयोग ... संभव है लेकिन थकाऊ"। हालाँकि, प्रकार का कोई भी निर्माता, और न ही किसी भी प्रकार का मान लौटाने वाले, QueryTypeनिर्यात नहीं किए जाते हैं। मैं इस बारे में सूचना पाने में कामयाब रहा कि QueryTypeयह एक newtypeऔर प्रयोग है unsafeCoerce!
मुझे एक Connection(जो मुझे SQLite के माध्यम से मिला था) प्रदान करने के लिए मजबूर किया गया था, भले ही SQL को उत्पन्न करने के लिए डेटाबेस से कनेक्ट करने की कोई आवश्यकता नहीं होनी चाहिए।
यह मुझे मिल गया है। इसके लिए अवश्य ही एक बेहतर तरीका होना चाहिए। '
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-विशिष्ट एसक्यूएल स्ट्रिंग्स उत्पन्न करने के लिए अनुमानित उदाहरणों का उपयोग करता है ।