问题标签 [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.

0 投票
0 回答
59 浏览

haskell - 使用 Haskell Persistent 在数据库之间复制数据

首先,我有一个大型 Sqlite 数据库。我想使用 Haskell 持久库以流方式将此数据库中的数据子集复制到另一个 Sqlite 数据库。

这是我唯一设法做到的,但与将数据加载到内存中然后将其写入新数据库相比,它非常慢(并且使用更多内存)。

问题出在migrate函数中,因为我正在调用runSqlPersistMPool管道流中的每一个数据。

什么是正确的方法?

0 投票
2 回答
84 浏览

haskell - 使用不同类型的 Monad Transformers 的策略是什么?

我正在尝试实现一个简单的 Web 服务器,它与其他一些 API 交互并在进行一些处理后存储响应。

为了封装失败的可能性(空响应、错误请求等),我使用ExceptT如下:

我还有另一个函数,它使用 Persistent 中的insertMany_将响应存储在数据库中。

现在我想写一个函数

这将完成这两件事,ApplicationConfig并将PersistEntityBackend需求浮出水面,用户可以在捆绑包中提供它们。

那可能吗?

如果是这样 - 策略/实施会是什么?

如果不是 - 我应该考虑哪些变化?

编辑:这就是我目前正在做的事情。

0 投票
1 回答
177 浏览

haskell - 如何为受 MonadReader 和 MonadIO 约束的函数修复缺少的 IO 实例?

我一直在尝试通过将mtl 与persistent结合使用来构建项目,从而对mtl有一个很好的理解。

该项目的一个模块具有使用insertMany_的功能

这里talkToAPI可能会失败,因此响应包含在 中ExceptT,它的类型是

简而言之,service的工作是与 API 对话,解析响应并将insertMany_响应存储到数据库中。

实际的存储操作由withPostgresqlConn处理


runReaderT在我的函数上使用service会产生

所以要处理这个我相信我需要runExceptT像这样使用

但我得到这两个错误

这里可能是什么问题?我可能有一个错误,但我不确定在哪里寻找。

0 投票
1 回答
128 浏览

haskell - Haskell + Persistent:解析错误可能缩进不正确或括号不匹配

在过去的几个月里,我一直在学习 Haskell,并试图按照这个关于 Haskell + Persistent 的教程进行学习:

https://www.yesodweb.com/book/persistent#persistent_code_generation

我之前没有遇到过这种语法(他们在教程中谈论'QuasiQuotes',所以我猜这就是它),但我认为我直接从教程中获取了代码,它应该编译。但是,它不会,我收到以下错误:

这是我的 cabal 文件中的配置:

如果有人可以帮助我,那将是惊人的。

0 投票
1 回答
49 浏览

haskell - 如何将呈现的持久性/esqueleto 查询传递给另一个查询?

我想使用 Persistent/Esqueleto 来实现计数估计。

本文推荐的一种方法是定义这样的函数

然后像这样使用它

为了使用该count_estimate功能,我需要(我认为?)呈现 Peristent/Equeleto 生成的查询,但是当我尝试使用 呈现查询时renderQuerySelect,我得到类似这样的结果

这当然不能塞进count_estimate,因为它会在?占位符上出现语法错误。我也不能天真地替换?with "Active",因为它会在第一个双引号上出现语法错误。

如何以我的count_estimate函数可以接受的方式呈现查询?

我试过这样的东西,但它在运行时失败

0 投票
0 回答
52 浏览

haskell - 如何为“PersistEntity”生成“EntityField”列表?

我试图实现某种形式的repsertByrepsert其中键是提供的唯一,在等行getByupsertBy

我的方法:在upsertBy. 现在upsertBy需要一个唯一约束、一条记录和一个更改列表,以在唯一冲突的情况下应用。为了实现repsertBy,我希望该更改列表是“将所有字段分配给新值”。

我被困住了。

我可以通过调用toPersistValue记录的toPersistFields. 但是我从哪里可以得到EntityFields?

我原以为它们可以在实体定义的某个地方èntityDef找到,但到目前为止还没有找到。我尝试与实际后端的替换和更新实现进行比较,但只发现了 SQL 级别的字符串碰撞。

我目前正在手动拼写字段,但有时我会在实体中添加一个而忘记在repsertBy. 有什么办法可以访问EntityFields吗?