问题标签 [slick-codegen]

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

scala - sourceManaged 文件夹中光滑的自动生成模型:如何在控制器中访问它们?

在 play 2.5 中,我使用来自 com.typesafe.slick 的 slick 代码生成器 "com.typesafe.slick" %% "slick-codegen" % "3.1.1" % "compile",它工作正常:自动生成的 Slick 数据模型生成到文件target/scala-2.11/src_managed/slick/dao/Tables.scala中。

我的问题:我如何从 Controller 访问生成的 Models 和 TableQuery 对象,比如说app/controllers/myDAOController.scala?任何提示或工作示例将不胜感激。谢谢!

0 投票
1 回答
353 浏览

scala - 带有 SQLServer 和 dbo 架构的 Slick Codegen

我正在尝试使用slick codegen根据 SQLServer 中的现有数据创建一个 Tables.scala 文件,并具有以下设置:

当我运行命令时,我没有收到任何错误,但会生成一个空的 Tables.scala 文件(数据库中有几十个表):

我的怀疑是 SQLServer 使用 dbo 模式这一事实存在问题,但该模式未在 codegen 调用的任何地方指定(所有表都命名为“dbo..TableName”)。

所以我的问题是:我是否需要在 codegen 配置中的某处指定“dbo”,如果需要,怎么做?

如果答案是不需要做任何事情,那么我如何调试 codegen 显然失败但没有产生错误的事实?

预先感谢您的考虑和回复。

0 投票
1 回答
230 浏览

scala - 光滑的代码生成没有给出任何输出

我正在尝试将当前版本的 slick 和 slick-codegen (3.2.0) 与 sqlite 数据库一起使用。当我尝试列出表格时,我得到了正确的名称。但是,当我尝试生成与表对应的类时,我没有得到任何输出。

这有效:

我得到下面的输出:

但是,以下代码,直接以相同的方式运行,不起作用:

意思是,代码运行成功,但我没有看到任何输出文件。有什么我想念的吗?

0 投票
2 回答
324 浏览

postgresql - 如何在插入时使 Slick 尊重 DB 列的默认值?

我在带有 Postgres DB 的 Scala Play 应用程序中使用 Slick 3.2 和 codegen。我的每个表都有一个用于 create_time 的时间戳字段,类型如下:TIMESTAMP default (now() at time zone 'utc'). 我遇到的问题是 Slick 将模型字段生成为createTimestamp: Option[java.sql.Timestamp],然后null在 createTimestamp 为 时为该列插入显式None。我希望行为将值完全排除在插入语句之外,以便数据库使用其默认值。有没有办法做到这一点?

0 投票
2 回答
1454 浏览

scala - 通过 slick codegen 导入从另一个项目构建的依赖项时,“对象不是包的成员”

我有一个这样的多项目设置:

kalosgen生成模型的主要类通过slick-codegen并将其放置在:

在包中com.kalos.gen。它还在编译时将 protobufs 编译为 scala 类,但该包按预期位于类路径中。

然后我可以将这些文件从kalosgeninto 导入kalosrpc,intelliJ 不会抱怨,并且可以完全访问这些文件中定义的类型信息。因此,我运行kalosgen/compile并按预期生成了包,但是当我跟进时,kalosrpc/compile我得到:

我试过更改包的名称,但它没有解决任何问题。根据此处提供的信息,我的项目配置似乎正确。

0 投票
1 回答
427 浏览

scala - slick 可以从模型中自动在数据库中创建表(生成 SQL 并执行)吗?

我知道 slick-codegen 可以从数据库表中生成 scala 类。我们可以做相反的事情,如果它们在模型中的数据库中不存在,则创建表吗?

0 投票
1 回答
273 浏览

scala - Scala Slick - 在表中插入省略一些列并返回新行的主键

对于 scala 项目,我同时使用play-slick两个play-slick-evolutions版本,并使用version5.0.0生成我的数据库类。slick-codegen3.3.3

我有一个带有一primary key列的表和一些带有default values. 我想插入一行而不提及主键列或任何具有默认值的列。理想情况下,此操作应返回已创建行的新主键。

我的问题是生成的代码slick-codegen似乎只允许插入完整的行,因为它对行使用自己的案例类。这是生成的代码的样子(没有注释):

有了这个生成的代码,我现在可以插入一行并提到整列:

但是我想省略开头的主键和具有默认值的时间戳参数。但是不能做这样的事情。

我在 slick 文档和 Web 中发现了许多类似后一种方法的示例,但它们用于数据库的类确实有一个元组而不是自己的行类。喜欢...

代替

我是否必须slick-codegen放弃我的项目并自己编写所有类以满足我的需求,还是我的库组合有play-slick误?或者在插入未记录的内容时是否有一个简单的技巧来省略列?

0 投票
1 回答
90 浏览

scala - 使用 Slick 生成的代码的方法 += 的参数过多

我正在一个 Scala 项目中尝试使用 Slick 来访问关系(PostgreSQL)数据库。该项目使用 Scala 2.12.14、Slick 3.3.3 和 Slick Codegen 3.3.3。

我首先创建了一个非常简单的数据库表:

接下来,我运行了 Slick 代码生成器来为我生成TableTableRow类。它们产生了这个 Scala 文件:

据我所知,这似乎是有道理的。

然后我尝试实际使用此模式将记录插入“示例”表:

编译此代码失败:

方法 += 的参数过多 (2): (value: Tables.ExampleRow)slick.sql.FixedSqlAction[Int,slick.dbio.NoStream,slick.dbio.Effect.Write]

有任何想法吗?