问题标签 [slick-pg]

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 回答
990 浏览

postgresql - 缺少带有 slick-pg 的隐式 TypedType[JsonString]

我将 slick-pg 0.8.2 与 Slick 2.1.0 一起使用,并且在使用 JSON 类型的列时遇到问题。

我的驱动程序定义如下:

这是我的 Table 类(它是抽象的,因为我有几个具有相同结构的表,并且我从这个表中继承):

据我所知,这完全是根据 slick-pg 网站上的测试、示例和文档。但是,我收到以下编译错误def json =

0 投票
2 回答
1144 浏览

scala - scala + slick-pg + 隐式

我尝试根据示例添加列 [slick-pg 示例][1]

还添加到类表中

但有编译错误

我做错了什么?你能举个例子吗?^

BR!

0 投票
1 回答
601 浏览

postgresql - 使用 Slick 3.1 时使用普通 SQL 枚举

我正在使用 Slick 3.1.0 和 Slick-pg 0.10.0。我有一个枚举:

在测试用例之后,它可以很好地与列映射器一起使用,只需将以下implicit映射器添加到我的自定义驱动程序中。

但是,在使用纯 SQL 时,我遇到了以下编译错误:

我找不到任何关于此的文件。如何在 slick 中使用枚举编写普通 SQL?谢谢。

0 投票
0 回答
228 浏览

scala - Slick Query jsonb - 不能转换为 slick.ast.OptionType

我正在尝试构建一个查询,该查询使用 slick-pg 作为我的 slick 驱动程序返回一些选定的列,但我在尝试映射 json 列时遇到问题MyValueObject。我在运行时遇到的错误是......

A client error occurred: slick.driver.JdbcTypesComponent$MappedJdbcType$$anon$1 cannot be cast to slick.ast.OptionType"

我的案例案例类、表映射器和查询看起来与此类似...

我现在能想出的唯一解决方案是映射结果,但返回的行可能非常大,我想避免将一系列大对象加载到内存中。

0 投票
1 回答
311 浏览

postgresql - 带有 slickpg 和 playframework 的 SQLTimeOutException

我遇到了麻烦,我不知道为什么我无法连接到数据库,一切都很好。

我的应用程序.conf

构建.sbt

0 投票
0 回答
454 浏览

scala - 用于组合各种形状的已编译查询的 Scala Slick 策略

我正在使用 postgresql 9.6、slick 3.2 并连接了slick-pg

我在 Scala 中实现了一个 graphql 后端,我需要实现查询来解析各种形状的 GraphQL 游标。输入的形状是可枚举的。影响查询的一些输入可能是:

  • 用户可选择的排序。
  • 各种过滤条件(全文搜索、日期范围等)。
  • 在向后或向前遍历之间进行选择。

我当前的简单游标将向后和向前硬编码为编译查询。两者都具有相同的形状,并且我使用标准的光滑抽象来分解共性以供重用(具有操作的值类、“实体”表的继承层次结构和代码生成)。但是仍然有很多样板,除非我将它们全部列出,否则它不会扩展到更动态的形状。

这是使用此模式的类的摘录:

总的问题是如何在没有大量样板的情况下获得此用例的编译查询?我想获得的一些见解是:

  1. 我有什么抽象来组成查询的一部分?在上面的示例中,backwardCursorByIdandforwardCursorById是查询的一部分。我希望能够从部件构建编译函数并以某种方式缓存它们......
  2. 如何在编译函数中使用记录类型?(在光滑的文档中暗示这是可能的,但我找不到示例)。
  3. 有没有办法缓存已编译的查询而不列出它们? - AFAIK。如果我在上面的 executor 函数中编译一个函数,它将在 executor 函数的每个函数调用上重复编译。

我愿意使用 slick-pg 支持的 postgres 特定类型。

0 投票
1 回答
166 浏览

slick - 光滑的时间戳计算

我正在为 postgres 使用 pg-slick 扩展。我尝试在 where 子句中进行计算,但我没有得到它的工作。它总是说:

过滤子句:

lastActivity 是:

我的 postgres 驱动程序是:

0 投票
1 回答
725 浏览

postgresql - Scala Slick 撰写列类型映射器

我正在使用 slick-pg,它为 slick 中的ListandDateTime类型添加了支持(带有隐式)。

不幸的是,我不能使用List[DateTime]- slick 不了解这些类型的组成,但我已经检查过它们是否都能正常工作(例如List[Int]DateTime)。

有没有办法轻松组合这两个隐式?

0 投票
0 回答
412 浏览

postgresql - Slick 如何更新 PG 中的 JSONB 列?

我尝试以attrs这种方式更新列(JSONB 类型),它编译失败。

但是如果我以同样的方式更新一个 INTEGER 列,它就会成功。

我应该如何通过 Slick 更新 JSONB 列?

0 投票
1 回答
1164 浏览

postgresql - 无法在 h2 内存数据库上运行测试,而是在 PostgreSQL 上运行

(我有多个相关问题,所以我将它们突出显示为粗体)

我有一个播放应用程序

  • 播放:2.6.19
  • 斯卡拉:2.12.6
  • h2:1.4.197
  • PostgreSQL:42.2.5
  • 玩滑/玩滑进化:3.0.1
  • 光滑-pg:0.16.3

我正在为 DAO 添加一个测试,我相信它应该在一个 h2 内存数据库上运行,该数据库在测试开始时创建,在测试结束时清除。

但是,我的测试总是在我配置和使用的 PostgreSQL 数据库上运行。

这是我的测试test/dao/TodoDAOImplSpec.scala

对于fakeApp,我尝试了所有三个,但它们都没有按预期工作 - 我的测试仍然在我的本地 PostgreSQL 表上运行(其中有 3 个待办事项),所以测试失败。

我尝试过/发现的:

首先,inMemoryDatabase()简单地返回一个,它看起来与我自己的地图Map("db.<name>.driver"->"org.h2.Driver", "db.<name>.url"->""jdbc:h2:mem:play-test-xxx")非常相似。conf但是,有两个主要区别:

  • inMemoryDatabasedb.<name>.xxx在我的conf地图使用时使用slick.dbs.<name>.db.xxx哪一个应该是正确的?

其次,将conf地图的键重命名为“slick.dbs.default.profile”、“slick.dbs.default.db.driver”和“slick.dbs.default.db.url”会报错。

这个发现很有趣——它与我使用 PostgreSQL ENUM 类型和slick-pg有关吗?(参见h2 的 slick-pg 问题)。这是否意味着这是运行 h2 内存测试的正确配置?如果是这样,问题就变成了How to fake PostgreSQL ENUM in h2

第三,我遵循这个线程sbt '; set javaOptions += "-Dconfig.file=conf/application-test.conf"; test'使用测试配置文件运行conf/application-test.conf

毫不奇怪,我得到了与第二次试验相同的错误。

在我看来,第二次和第三次试验指向了正确的方向(将对此进行研究)。但是为什么我们必须设置namedefault还有其他更好的方法吗?