问题标签 [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.
postgresql - 缺少带有 slick-pg 的隐式 TypedType[JsonString]
我将 slick-pg 0.8.2 与 Slick 2.1.0 一起使用,并且在使用 JSON 类型的列时遇到问题。
我的驱动程序定义如下:
这是我的 Table 类(它是抽象的,因为我有几个具有相同结构的表,并且我从这个表中继承):
据我所知,这完全是根据 slick-pg 网站上的测试、示例和文档。但是,我收到以下编译错误def json =
:
scala - scala + slick-pg + 隐式
我尝试根据示例添加列 [slick-pg 示例][1]
还添加到类表中
但有编译错误
我做错了什么?你能举个例子吗?^
BR!
postgresql - 使用 Slick 3.1 时使用普通 SQL 枚举
我正在使用 Slick 3.1.0 和 Slick-pg 0.10.0。我有一个枚举:
在测试用例之后,它可以很好地与列映射器一起使用,只需将以下implicit
映射器添加到我的自定义驱动程序中。
但是,在使用纯 SQL 时,我遇到了以下编译错误:
我找不到任何关于此的文件。如何在 slick 中使用枚举编写普通 SQL?谢谢。
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"
我的案例案例类、表映射器和查询看起来与此类似...
我现在能想出的唯一解决方案是映射结果,但返回的行可能非常大,我想避免将一系列大对象加载到内存中。
postgresql - 带有 slickpg 和 playframework 的 SQLTimeOutException
我遇到了麻烦,我不知道为什么我无法连接到数据库,一切都很好。
我的应用程序.conf
构建.sbt
scala - 用于组合各种形状的已编译查询的 Scala Slick 策略
我正在使用 postgresql 9.6、slick 3.2 并连接了slick-pg。
我在 Scala 中实现了一个 graphql 后端,我需要实现查询来解析各种形状的 GraphQL 游标。输入的形状是可枚举的。影响查询的一些输入可能是:
- 用户可选择的排序。
- 各种过滤条件(全文搜索、日期范围等)。
- 在向后或向前遍历之间进行选择。
我当前的简单游标将向后和向前硬编码为编译查询。两者都具有相同的形状,并且我使用标准的光滑抽象来分解共性以供重用(具有操作的值类、“实体”表的继承层次结构和代码生成)。但是仍然有很多样板,除非我将它们全部列出,否则它不会扩展到更动态的形状。
这是使用此模式的类的摘录:
总的问题是如何在没有大量样板的情况下获得此用例的编译查询?我想获得的一些见解是:
- 我有什么抽象来组成查询的一部分?在上面的示例中,
backwardCursorById
andforwardCursorById
是查询的一部分。我希望能够从部件构建编译函数并以某种方式缓存它们...... - 如何在编译函数中使用记录类型?(在光滑的文档中暗示这是可能的,但我找不到示例)。
- 有没有办法缓存已编译的查询而不列出它们? - AFAIK。如果我在上面的 executor 函数中编译一个函数,它将在 executor 函数的每个函数调用上重复编译。
我愿意使用 slick-pg 支持的 postgres 特定类型。
slick - 光滑的时间戳计算
我正在为 postgres 使用 pg-slick 扩展。我尝试在 where 子句中进行计算,但我没有得到它的工作。它总是说:
过滤子句:
lastActivity 是:
我的 postgres 驱动程序是:
postgresql - Scala Slick 撰写列类型映射器
我正在使用 slick-pg,它为 slick 中的List
andDateTime
类型添加了支持(带有隐式)。
不幸的是,我不能使用List[DateTime]
- slick 不了解这些类型的组成,但我已经检查过它们是否都能正常工作(例如List[Int]
和DateTime
)。
有没有办法轻松组合这两个隐式?
postgresql - Slick 如何更新 PG 中的 JSONB 列?
我尝试以attrs
这种方式更新列(JSONB 类型),它编译失败。
但是如果我以同样的方式更新一个 INTEGER 列,它就会成功。
我应该如何通过 Slick 更新 JSONB 列?
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
但是,有两个主要区别:
inMemoryDatabase
db.<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
:
毫不奇怪,我得到了与第二次试验相同的错误。
在我看来,第二次和第三次试验指向了正确的方向(将对此进行研究)。但是为什么我们必须设置name
为default
?还有其他更好的方法吗?