将Play升级到2.4,将Slick升级到3.1.1,withTransaction的值不是play.api.db.slick.Database的成员

时间:2018-10-22 19:46:09

标签: scala slick playframework-2.4 slick-3.0

我正在尝试将我的应用程序从使用Play 2.3.x升级到Play 2.4.x(将以2.6结束,但一次升级),并将Slick从2.1.0升级到3.1.1。

我已竭尽全力关注Play's migration guidePlay Slick migration guideSlick upgrade guides

我现在遇到的问题之一是以下行:

val db: slick.Database = play.api.db.slick.DB

这似乎不再是执行此B / c的正确方法,我得到如下错误:

value withTransaction is not a member of play.api.db.slick.Database

从Play slick迁移指南看来,我应该将其修改为类似

val dbConfig = DatabaseConfigProvider.get[JdbcProfile](Play.current)

但是如果我没有正确的导入或其他内容,则为idk,但是会出现类似以下错误:

object driver is not a member of package play.api.db.slick
not found: value DatabaseConfigProvider

有关更多背景信息,以下是我正在使用的文件之一,它导致此错误:https://github.com/ProjectSidewalk/SidewalkWebpage/blob/2c48dfa2e34c691e40568bfa9d50493aa3fe9971/app/models/attribute/GlobalAttributeTable.scala

有人知道我在这些迁移指南中错过了什么吗?

提前谢谢!

1 个答案:

答案 0 :(得分:1)

事实证明我缺少一些东西:

  1. 我没有意识到我需要使用更新版本的play-slick库(我仍使用0.8.0而不是1.1.1)。
  2. 我需要添加导入import play.api.Play而不是已有的导入import play.api.Play.current
  3. 我有一个导入import play.api.db.slick,导致与此导入所在的行“对象驱动程序不是package.api.db.slick软件包的成员”错误:import slick.driver.JdbcProfile。我只是删除了以前不需要的导入。
  4. 正如@Valerii所说,withTransaction已在Slick 3.1中删除,替换内容已记录在上述注释的各个链接中。