问题标签 [haskell-persistent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - 使用 Haskell Persistent 在数据库之间复制数据
首先,我有一个大型 Sqlite 数据库。我想使用 Haskell 持久库以流方式将此数据库中的数据子集复制到另一个 Sqlite 数据库。
这是我唯一设法做到的,但与将数据加载到内存中然后将其写入新数据库相比,它非常慢(并且使用更多内存)。
问题出在migrate
函数中,因为我正在调用runSqlPersistMPool
管道流中的每一个数据。
什么是正确的方法?
haskell - 使用不同类型的 Monad Transformers 的策略是什么?
我正在尝试实现一个简单的 Web 服务器,它与其他一些 API 交互并在进行一些处理后存储响应。
为了封装失败的可能性(空响应、错误请求等),我使用ExceptT
如下:
我还有另一个函数,它使用 Persistent 中的insertMany_将响应存储在数据库中。
现在我想写一个函数
这将完成这两件事,ApplicationConfig
并将PersistEntityBackend
需求浮出水面,用户可以在捆绑包中提供它们。
那可能吗?
如果是这样 - 策略/实施会是什么?
如果不是 - 我应该考虑哪些变化?
编辑:这就是我目前正在做的事情。
haskell - 如何为受 MonadReader 和 MonadIO 约束的函数修复缺少的 IO 实例?
我一直在尝试通过将mtl 与persistent结合使用来构建项目,从而对mtl有一个很好的理解。
该项目的一个模块具有使用insertMany_的功能
这里talkToAPI
可能会失败,因此响应包含在 中ExceptT
,它的类型是
简而言之,service
的工作是与 API 对话,解析响应并将insertMany_
响应存储到数据库中。
实际的存储操作由withPostgresqlConn处理
runReaderT
在我的函数上使用service
会产生
所以要处理这个我相信我需要runExceptT
像这样使用
但我得到这两个错误
这里可能是什么问题?我可能有一个错误,但我不确定在哪里寻找。
haskell - Haskell + Persistent:解析错误可能缩进不正确或括号不匹配
在过去的几个月里,我一直在学习 Haskell,并试图按照这个关于 Haskell + Persistent 的教程进行学习:
https://www.yesodweb.com/book/persistent#persistent_code_generation
我之前没有遇到过这种语法(他们在教程中谈论'QuasiQuotes',所以我猜这就是它),但我认为我直接从教程中获取了代码,它应该编译。但是,它不会,我收到以下错误:
这是我的 cabal 文件中的配置:
如果有人可以帮助我,那将是惊人的。
haskell - 如何将呈现的持久性/esqueleto 查询传递给另一个查询?
我想使用 Persistent/Esqueleto 来实现计数估计。
本文推荐的一种方法是定义这样的函数
然后像这样使用它
为了使用该count_estimate
功能,我需要(我认为?)呈现 Peristent/Equeleto 生成的查询,但是当我尝试使用 呈现查询时renderQuerySelect
,我得到类似这样的结果
这当然不能塞进count_estimate
,因为它会在?
占位符上出现语法错误。我也不能天真地替换?
with "Active"
,因为它会在第一个双引号上出现语法错误。
如何以我的count_estimate
函数可以接受的方式呈现查询?
我试过这样的东西,但它在运行时失败
haskell - 如何为“PersistEntity”生成“EntityField”列表?
我试图实现某种形式的repsertBy
:repsert
其中键是提供的唯一,在等行getBy
中upsertBy
。
我的方法:在upsertBy
. 现在upsertBy
需要一个唯一约束、一条记录和一个更改列表,以在唯一冲突的情况下应用。为了实现repsertBy
,我希望该更改列表是“将所有字段分配给新值”。
我被困住了。
我可以通过调用toPersistValue
记录的toPersistFields
. 但是我从哪里可以得到EntityField
s?
我原以为它们可以在实体定义的某个地方èntityDef
找到,但到目前为止还没有找到。我尝试与实际后端的替换和更新实现进行比较,但只发现了 SQL 级别的字符串碰撞。
我目前正在手动拼写字段,但有时我会在实体中添加一个而忘记在repsertBy
. 有什么办法可以访问EntityField
s吗?