-
-
Notifications
You must be signed in to change notification settings - Fork 281
Open
Labels
Description
Play Slick Version
5.0.0
Play Version
2.8.2
API
Scala 2.13.2
Operating System
macOS 10.15.5
JDK
java version 11
Library Dependencies
"com.github.tminglei" %% "slick-pg" % "0.19.0"
"org.postgresql" % "postgresql" % "42.2.13"
"com.typesafe.slick" %% "slick" % "3.3.2"
"com.typesafe.slick" %% "slick-hikaricp" % "3.3.2"
"com.typesafe.play" %% "play-slick" % "5.0.0"
"com.typesafe.play" %% "play-slick-evolutions" % "5.0.0"
Expected Behavior
- Application should connect to database as it does in version 2.8.1 when configured like below in application.conf
slick {
dbs {
default {
profile = "io.mydomain.persistence.PostgresProfile$"
db {
driver = "org.postgresql.Driver"
url = "jdbc:postgresql://localhost:5432/thedatabase"
user = "theuser"
password = "thepassword"
}
}
}
}
package io.mydomain.persistence
import com.github.tminglei.slickpg._
import slick.driver.JdbcProfile
import slick.basic.Capability
import play.api.libs.json.{Format, Json, JsValue}
trait PostgresProfile
extends ExPostgresProfile
with PgArraySupport
with PgDate2Support
with PgRangeSupport
with PgHStoreSupport
with PgPlayJsonSupport
with PgSearchSupport
with PgPostGISSupport
with PgNetSupport
with PgLTreeSupport {
def pgjson = "jsonb"
override val api = MyAPI
object MyAPI extends API with ArrayImplicits
with DateTimeImplicits
with JsonImplicits
with NetImplicits
with LTreeImplicits
with RangeImplicits
with HStoreImplicits
with SearchImplicits
with SearchAssistants {
implicit val strListTypeMapper = new SimpleArrayJdbcType[String]("text").to(_.toList)
implicit val playJsonArrayTypeMapper =
new AdvancedArrayJdbcType[JsValue](pgjson,
(s) => utils.SimpleArrayUtils.fromString[JsValue](Json.parse(_))(s).orNull,
(v) => utils.SimpleArrayUtils.mkString[JsValue](_.toString())(v)
).to(_.toList)
}
}
object PostgresProfile extends PostgresProfile
Actual Behavior
- Fails to connect to database when
play.api.Configuration$$anon$1: Configuration error[Cannot connect to database [default]]
at play.api.Configuration$.configError(Configuration.scala:155)
at play.api.Configuration.reportError(Configuration.scala:394)
at play.api.db.slick.DefaultSlickApi$DatabaseConfigFactory.create(SlickApi.scala:99)
at play.api.db.slick.DefaultSlickApi$DatabaseConfigFactory.get$lzycompute(SlickApi.scala:87)
at play.api.db.slick.DefaultSlickApi$DatabaseConfigFactory.get(SlickApi.scala:86)
at play.api.db.slick.DefaultSlickApi.dbConfig(SlickApi.scala:70)
at TestApp.dbConfig$lzycompute(Loader.scala:36)
at TestApp.dbConfig(Loader.scala:36)
at TestApp.signUpCodesService$lzycompute(Loader.scala:42)
at TestApp.signUpCodesService(Loader.scala:42)
Caused by: slick.SlickException: Error getting instance of profile "io.mydomain.persistence.PostgresProfile$"
at slick.basic.DatabaseConfig$.forConfig(DatabaseConfig.scala:95)
at play.api.db.slick.DefaultSlickApi$DatabaseConfigFactory.create(SlickApi.scala:95)
at play.api.db.slick.DefaultSlickApi$DatabaseConfigFactory.get$lzycompute(SlickApi.scala:87)
at play.api.db.slick.DefaultSlickApi$DatabaseConfigFactory.get(SlickApi.scala:86)
at play.api.db.slick.DefaultSlickApi.dbConfig(SlickApi.scala:70)
at TestApp.dbConfig$lzycompute(Loader.scala:36)
at TestApp.dbConfig(Loader.scala:36)
at TestApp.signUpCodesService$lzycompute(Loader.scala:42)
at TestApp.signUpCodesService(Loader.scala:42)
at TestApp.signUpCodesController$lzycompute(Loader.scala:55)
Caused by: java.lang.ClassNotFoundException: io.mydomain.persistence.PostgresProfile$
at java.base/java.lang.ClassLoader.findClass(ClassLoader.java:719)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at slick.util.ClassLoaderUtil$$anon$1.loadClass(ClassLoaderUtil.scala:17)
at slick.basic.DatabaseConfig$.forConfig(DatabaseConfig.scala:92)
at play.api.db.slick.DefaultSlickApi$DatabaseConfigFactory.create(SlickApi.scala:95)
at play.api.db.slick.DefaultSlickApi$DatabaseConfigFactory.get$lzycompute(SlickApi.scala:87)
at play.api.db.slick.DefaultSlickApi$DatabaseConfigFactory.get(SlickApi.scala:86)
at play.api.db.slick.DefaultSlickApi.dbConfig(SlickApi.scala:70)
at TestApp.dbConfig$lzycompute(Loader.scala:36)
Reproducible Test Case
The issue goes away when I simply change the Play plugin version from 2.8.2 to 2.8.1