Tak więc ostateczna odpowiedź brzmi:
Po pierwsze, w adresie URL bazy danych jest błąd, powinien to być db.default.url="jdbc:postgresql://localhost:5432/playdb" jak wskazał chabeee
. To jedyny poprawny format dla db.default.url (więc nie jdbc:postgresql://username:pasword:localhost/dbname lub podobne, jak sugerowałem w innych miejscach).
Po drugie, bardziej skomplikowane jest to, że w sterowniku jest błąd, na co wskazał Salem
obejściem jest dodanie db.default.hikaricp.connectionTestQuery = "SELECT 1" do application.conf .
Jednak ten błąd został naprawiony (cóż, to obejście jest zaimplementowane) w wersjach nowszych niż 9.1-903 . Połów jest, po wersji 9.1-901 postgresql zmienił swój identyfikator grupy w repozytoriach, a teraz odwołuje się do niego org.postgresql . Lepszym rozwiązaniem niż obejście byłoby zaktualizowanie zależności do "org.postgresql" % "postgresql" % "9.4-1206-jdbc4" (aktualna wersja
, MVNrepository
). Dołącz odpowiednią wersję jdbc do najnowszego sterownika PostgreSQL (4 dla Javy 6, 41 dla Javy 7, 42 dla Javy 8).
Mój ostatni application.conf :
db.default.driver="org.postgresql.Driver"
db.default.url="jdbc:postgresql://localhost/playdb" #the port is optional
db.default.username="luka"
db.default.password="test"
I libraryDependencies w build.sbt :
libraryDependencies ++= Seq(
jdbc,
"org.postgresql" % "postgresql" % "9.4-1206-jdbc42",
cache,
javaWs
)
AKTUALIZACJA 2017: Dopiero teraz zauważyłem, że niedługo po napisaniu tej odpowiedzi zmienili schemat wersjonowania i usunęli fragment -jdbc[code], zastępując go .jre6, .jre7 lub nic, najwyraźniej oznacza to, że jest przeznaczony do najnowszej wersji Javy (nie znalazłem coś na poparcie tego twierdzenia, ale to działa). Po raz kolejny w lutym 2017 r. ponownie zmienili schemat wersji
i przeskoczył z wersji głównej 9 do 42, dzięki czemu bieżąca wersja (stan na 17 lipca 2017 r.) jest oznaczona przez "org.postgresql" % "postgresql" % "42.1.3" (lub odpowiednio "org.postgresql" % "postgresql" % "42.1.3.jre7" / "org.postgresql" % "postgresql" % "42.1.3.jre6" )