问题标签 [esqueleto]

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 投票
1 回答
185 浏览

database - 在 Maybe Relation 上运行 join

我有一个模型

和一个模型

我想在连接查询中获取与分配关联的所有文件。我已经尝试过 Esqueleto 和runJoinwithselectOneMany但没有任何运气,所以我正在考虑不使用连接或使用 rawSql。这似乎真的不是一个好主意,但我无法弄清楚这一点。是否支持该功能?

0 投票
2 回答
552 浏览

sql - Esqueleto/raw SQL——通过对另一个表的排序结果对查询进行排序?

实际上,我对 SQL 的工作方式有点陌生——我总是让我的 ORM 为我处理一切。但是在这种情况下,Persistent 没有公开这种功能,所以我不知道该怎么做。

我有一个多对多的关系:

我想主要按标签最近条目的日期(降序)对标签进行排序,其次是标签(升序)。

TagCar的最新条目是 1 月 3 日,所以它排在第一位。TagApple的最新条目是 1 月 2 日,但 tag 也是如此Boat。但是,标签按字母顺序位于标签Apple之前,因此是 2nd 和3rd:BoatAppleBoat

通过我的研究,我发现我需要某种连接组合来做到这一点。但是到目前为止,我只找到了一对多关系的解决方案(通过他们最近的帖子在一个线程中排序主题),我想我理解它们,但没有一个涉及多对多的这些三向连接关系。

我将原始 sql 作为一个可能的答案,因为我认为我真的只是要求使用 sql 方法来完成它,即使我使用 Esqueleto 进行 SQL 绑定,我认为一旦我理解了 SQL,翻译成 Esqueleto 会很简单。我使用 postgresql 作为我的后端,但我宁愿不使用 postgres 特定的东西,因为我的绑定是针对一般后端的。

有人知道我可以从哪里开始吗?我应该查看什么样的联接以及如何对最近的条目进行排序?

0 投票
1 回答
108 浏览

haskell - Esqueleto 简单类型错误

我从hackage 页面直接查询时遇到类型错误。
查询应该选择GolfCourse名称等于 的a "Miniota"
询问:

错误:

我怀疑这个错误与我错误地使用E.val
我现在实际上没有gcs在 widgetFile 中使用有关。帮助将不胜感激。

0 投票
1 回答
130 浏览

postgresql - Esqueleto `selectDistinct` 不起作用

selectDistinct似乎对我不起作用,这可能是一个简单的错误。查询:

我很确定这代表了有效的 sql 查询:

要查看结果,我有一个测试处理程序来打印结果表。请注意,对于 tpart 1,第 1 轮,有多个洞 1 和洞 2。在 postgresqlSELECT DISTINICT中删除了这些重复项。

对不起,难以辨认。任何帮助,将不胜感激!

0 投票
1 回答
2784 浏览

haskell - 如何让 esqueleto 为我生成 SQL 字符串?

如何让 esqueleto 从from语句中生成 SQL 字符串?

的文档toRawSql说“您可以只打开持久性的查询日志记录”。MonadLogger我尝试了所有我能理解的可能形式,但它从未打印任何 SQL。相同的文档还说“手动使用此功能......是可能的,但很乏味”。但是,不会导出该类型的构造函数,也不会QueryType导出任何返回该类型值的函数。我注意到这QueryType是 anewtype并使用unsafeCoerce!

Connection即使不需要连接到数据库来生成 SQL,我也被迫提供一个(我通过 SQLite 获得的)。

这就是我所拥有的。一定会有更好的办法。

http://hackage.haskell.org/package/esqueleto-1.3.4.2/docs/Database-Esqueleto-Internal-Sql.html

0 投票
1 回答
312 浏览

sql - 动态选择 Database.Esqueleto SQL 运算符

我想Database.Esqueleto根据存储在数据库中的数据动态创建查询(请参阅DynamicQuery Database.Persist下面代码片段中的实体)。op下面的代码可以编译,但由于重复定义(对于 Text 字段类型、op2Day 字段类型和字段类型) op3,它不是很优雅Bool

是否可以编写一个更通用的函数,类似于op在定义的所有情况下都可以使用的函数expr

尝试重用使用op的 Day 字段类型op2会导致以下错误消息:

代码片段如下:

0 投票
1 回答
414 浏览

haskell - 如何使用 quasiquoter 向 Database.Persist 模型添加唯一键?

如何使用persistLowerCasequasiquoter 构建具有两个或多个字段的唯一键?

使用Yesod bookDatabase.Persist中的指导为简单网站创建模型时,会出现以下错误:

应用程序/模型.hs

应用程序/处理程序.hs

版本:

  • Haskell 平台 2013.2
  • Cabal== 1.19.2
  • persistent== 1.3.0.2
  • scotty== 0.6.2
  • esqueleto== 1.3.4.5

我错过了一些扩展或忽略了其他东西吗?

0 投票
1 回答
665 浏览

haskell - Haskell:Yesod 和 Esqueleto

如何让 Yesod 1.2 中的 runDB 与 Esqueleto 一起工作?

这是错误输出:

我试图按照本教程进行操作,但似乎他们的 runDB 设置与 Yesod 脚手架的设置方式不同。https://github.com/yesodweb/yesod/wiki/Multi-select-field-populated-from-database-(using-esqueleto)

0 投票
0 回答
131 浏览

haskell - 加入不同类型之间的 Esqueleto

我正在尝试在现有数据库上使用 Esqueleto,但遇到了这个问题:我需要加入的两列属于不同类型。一个是整数(普通),另一个(“外键”)是字符串而不是整数:-(

在标准 SQL 中编写连接可以正常工作,但使用 Esqueleto,它会抱怨类型 mismtach(这是真的,但我不在乎)。是否有解决方法(例如在 Esqueleto 中进行“转换”或能够添加原始 ON 标准)?

0 投票
1 回答
888 浏览

haskell - 如何在 Esqueleto 查询中使用 Group By 和 Sum

我正在尝试使用来自 Esqueleto 的示例查询之一,但我无法编译它。唯一的变化是我在没有连接的情况下使用它。

我有一个看起来像这样的表:

我想这样做:

这是我的查询:

我收到此错误:

我在哪里提供类型信息E.select?编译器应该能够从中推断t E.^.MyTableCategory吗?我也尝试使用countRows / groupBy此处的示例(https://hackage.haskell.org/package/esqueleto-1.4.1/docs/Database-Esqueleto.html)但类似的问题(唯一的区别是我没有加入)

感谢你的帮助。

谢谢!