คำถามติดแท็ก esqueleto

1
การจัดการประเภทรายการด้วย Esqueleto
ฉันมีชนิดข้อมูลที่กำหนดเป็น: data ComitteeView = CommitteeView { committeeId :: CommitteeId , committeeMembers :: [Person] } data CommitteesView = CommitteesView { committeeView :: [CommitteeView] } ตอนนี้มันมีอยู่ฉันมีรูปแบบถาวรที่กำหนดเป็น: Person name Text Committee name Text CommitteePerson personId PersonId committeeId CommitteeId ฉันสามารถสร้างแบบสอบถามได้อย่างง่ายดายเพื่อเติม CommitteeView โดยใช้ Esqueleto มันจะเป็นอะไรเช่นนี้: getCommitteeView cid = CommitteeView <$> runDB $ select $ from …
144 sql  list  haskell  esqueleto 

1
ฉันจะให้ esqueleto สร้างสตริง SQL ให้ฉันได้อย่างไร
ฉันจะให้ esqueleto สร้างสตริง SQL จาก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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.