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

Upgrading Play to 2.4, Slick to 3.1.1, value withTransaction is not a member of play.api.db.slick.Database

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

我已经尽力关注了Play's migration guide, the Play Slick migration guide, and the Slick 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)

但是如果我没有正确的导入或其他什么,我会知道,但我会收到如下错误:

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. 我没有意识到我需要使用更新版本的 play-slick 库(我仍然使用 0.8.0 而不是 1.1.1)。
  2. 我需要添加导入 import play.api.Play 而不是我已有的导入 import play.api.Play.current
  3. 我有一个导入 import play.api.db.slick,它在导入行 "object driver is not a member of package play.api.db.slick" 中导致错误:import slick.driver.JdbcProfile。我刚刚删除了以前不需要的导入。
  4. 正如@Valerii 所说,withTransaction 已在 Slick 3.1 中删除,替换记录在上面评论的各个链接中。