Обновление Play до 2.4, Slick до 3.1.1, значение withTransaction не является членом play.api.db.slick.Database - PullRequest
0 голосов
/ 22 октября 2018

Я пытаюсь обновить свое приложение с использования Play 2.3.x до Play 2.4.x (закончится на 2.6, но будет идти по одному шагу за раз) и Slick с 2.1.0 до 3.1.1.

Я приложил все усилия, чтобы следовать Руководству по миграции Play , Руководству по миграции Play Slick и Руководствам по обновлению .

One.проблем, с которыми я сейчас сталкиваюсь, заключается в следующей строке:

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

Это больше не похоже на правильный способ сделать это, потому что я получаю сообщения об ошибках типа:

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 Ответ

0 голосов
/ 26 октября 2018

Оказывается, я упустил несколько вещей:

  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, который вызывалОшибка «драйвер объекта не является членом пакета play.api.db.slick» в строке с этим импортом: import slick.driver.JdbcProfile.Я просто удалил прежний импорт, который не был нужен.
  4. Как сказал @Valerii, withTransaction был удален в Slick 3.1, и замена задокументирована в различных ссылках в комментариях выше.
...