Play 2.5 + Slick application.conf 配置错误 URL

Play 2.5 + Slick application.conf configuration error with URL

如果有人遇到这个无法解释问题所在的奇怪错误:

CreationException: Unable to create injector, see the following errors: 1) Error in custom provider, java.lang.IllegalStateException: when specifying driverClassName, jdbcUrl must also be specified while locating play.api.db.evolutions.ApplicationEvolutionsProvider at play.api.db.evolutions.EvolutionsModule.bindings(EvolutionsModule.scala:22): Binding(class play.api.db.evolutions.ApplicationEvolutions to ProviderConstructionTarget(class play.api.db.evolutions.ApplicationEvolutionsProvider) eagerly) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon) while locating play.api.db.evolutions.ApplicationEvolutions 1 error

我发现奇怪的是,如果您删除

,错误就会消失
"com.typesafe.play" %% "play-slick-evolutions" % "2.0.0"

来自您的 build.sbt 文件。

无论如何,问题是我的 application.conf 文件看起来像这样:

slick.dbs.default.driver = "slick.driver.PostgresDriver$"
slick.dbs.default.db.driver = "org.postgresql.Driver"
slick.dbs.default.url = "jdbc:postgresql://localhost:5432/pusdienodb"
slick.dbs.default.user = "pusdieno"
slick.dbs.default.password = "password"

原来 url,用户和密码也需要 .db. 部分。

所以你的配置最终应该是这样的:

slick.dbs.default.driver = "slick.driver.PostgresDriver$"
slick.dbs.default.db.driver = "org.postgresql.Driver"
slick.dbs.default.db.url = "jdbc:postgresql://localhost:5432/pusdienodb"
slick.dbs.default.db.user = "pusdieno"
slick.dbs.default.db.password = "password"