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"
)