小编Ter*_*ero的帖子

编写Database.Esqueleto查询,条件连接和计数

如何以模块化方式编写Database.Esqueleto查询,以便在定义"基本"查询和相应的结果集之后,我可以通过添加其他内部联接和表达式来限制结果集.

此外,如何将返回实体(或字段元组)列表的基本查询转换为计算结果集的查询,因为基本查询不是这样执行的,而是使用LIMIT和OFFSET修改它的版本.

Yesod Book中采用的以下不正确的Haskell代码片段有望澄清我的目标.

{-# LANGUAGE QuasiQuotes, TemplateHaskell, TypeFamilies, OverloadedStrings #-}
{-# LANGUAGE GADTs, FlexibleContexts #-}
import qualified Database.Persist as P
import qualified Database.Persist.Sqlite as PS
import Database.Persist.TH
import Control.Monad.IO.Class (liftIO)
import Data.Conduit
import Control.Monad.Logger
import Database.Esqueleto
import Control.Applicative

share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|
Person
    name String
    age Int Maybe
    deriving Show
BlogPost
    title String
    authorId PersonId
    deriving Show
Comment
    comment String
    blogPostId BlogPostId
|]

main :: IO ()
main = runStdoutLoggingT $ runResourceT $ PS.withSqliteConn …
Run Code Online (Sandbox Code Playgroud)

sql haskell yesod

11
推荐指数
2
解决办法
1292
查看次数

Database.Persist的SQL索引(Yesod Web框架)

Database.Persist似乎与索引无关.这没关系,我可以创建自己的索引,但通用SQL迁移似乎在添加/删除字段时创建和删除表.这具有删除索引的效果.

是否有建议的方法来确保它们在数据库迁移中幸存?

haskell yesod

4
推荐指数
1
解决办法
739
查看次数

标签 统计

haskell ×2

yesod ×2

sql ×1