Scala 将Play升级到2.4,Slick升级到3.1.1,value withTransaction不是Play.api.db.Slick.Database的成员

Scala 将Play升级到2.4,Slick升级到3.1.1,value withTransaction不是Play.api.db.Slick.Database的成员,scala,slick,playframework-2.4,slick-3.0,Scala,Slick,Playframework 2.4,Slick 3.0,我正在尝试将我的应用程序从Play2.3.x升级到Play2.4.x(将在2.6结束,但一次只进行一步),并从2.1.0升级到3.1.1 我已经尽了我最大的努力去跟随,跟随,跟随 我现在遇到的一个问题是以下几行: val db: slick.Database = play.api.db.slick.DB 这似乎不再是执行此操作的正确方法b/c我收到如下错误: value withTransaction is not a member of play.api.db.slick.Database

我正在尝试将我的应用程序从Play2.3.x升级到Play2.4.x(将在2.6结束,但一次只进行一步),并从2.1.0升级到3.1.1

我已经尽了我最大的努力去跟随,跟随,跟随

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

val db: slick.Database = play.api.db.slick.DB
这似乎不再是执行此操作的正确方法b/c我收到如下错误:

value withTransaction is not a member of play.api.db.slick.Database
object driver is not a member of package play.api.db.slick
not found: value DatabaseConfigProvider
从Play slick迁移指南来看,似乎我应该将其修改为

val dbConfig = DatabaseConfigProvider.get[JdbcProfile](Play.current)
但是idk如果我没有正确的导入或者什么,但是我得到了如下错误:

value withTransaction is not a member of play.api.db.slick.Database
object driver is not a member of package play.api.db.slick
not found: value DatabaseConfigProvider
有关更多上下文信息,下面是我正在处理的一个文件,它会导致此错误:

有人知道我在这些迁移指南中遗漏了什么吗


提前谢谢你

结果发现我遗漏了一些东西:

  • 我没有意识到我需要使用play slick库的更新版本(我仍然使用0.8.0而不是1.1.1)
  • 我需要添加import
    import play.api.play
    而不是我已有的import
    import play.api.play.current
  • 我有一个import
    import play.api.db.slick
    ,它导致了“对象驱动程序不是package play.api.db.slick的成员”错误,该错误与此导入相关:
    import slick.driver.JdbcProfile
    。我只是删除了以前不需要的导入
  • 正如@Valerii所说,
    with transaction
    已在Slick 3.1中删除,替换内容记录在上述评论的各个链接中

  • 您正在从slick 2.1.0迁移到3.1.1。他们完全改变了交易管理。你可以在这里读到。我想你应该先看看3.0.0版的迁移指南-谢谢!是的,我也试着遵循2.1.0到3.0.0的指南。但是您链接到的关于DB I/O操作的部分完全超出了我的理解范围。我查看的代码类似于
    def getAllX:List[X]=db.withSession{implicit session=>tableOfX.List}
    ,从升级指南中看不到这样的代码应该如何迁移。一旦你点击了3.0.0文档,
    withSession
    将不再被提及。我能找到的最好的方法是,但这也不能完全解释。好的,这里是另一篇我觉得很有帮助的博客文章,它提供了关于这种特殊语法迁移的更多信息:一旦我尝试了它,就会报告回来。