sql >> Base de Datos >  >> RDS >> PostgreSQL

Reproducir No se puede conectar a la base de datos (PostgreSQL) [predeterminado]

Entonces, la respuesta definitiva es:

Primero, hay un error en la URL de la base de datos, debería ser db.default.url="jdbc:postgresql://localhost:5432/playdb" como chabeee señaló . Es el único formato correcto para db.default.url (así que no jdbc:postgresql://username:pasword:localhost/dbname o similar, como he visto sugerir en otros lugares).

En segundo lugar, más complicado, es que hay un error en el controlador como Salem señaló y la solución es agregar db.default.hikaricp.connectionTestQuery = "SELECT 1" a application.conf .
Sin embargo, ese error está solucionado (bueno, esa solución está implementada) en versiones más recientes que 9.1-903 . El truco es, después de la versión 9.1-901 postgresql cambió su ID de grupo en los repositorios y ahora es referenciado por org.postgresql . Una solución mejor que la alternativa sería actualizar las dependencias a "org.postgresql" % "postgresql" % "9.4-1206-jdbc4" (versión actual , MVNrepository ). Agregue la versión adecuada de jdbc al controlador PostgreSQL más reciente (4 para Java 6, 41 para Java 7, 42 para Java 8).

Mi application.conf final :

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"

Y libraryDependencies en build.sbt :

libraryDependencies ++= Seq(
  jdbc,
  "org.postgresql" % "postgresql" % "9.4-1206-jdbc42",
  cache,
  javaWs
)

ACTUALIZACIÓN 2017: Solo ahora me di cuenta de que no mucho después de escribir esta respuesta, cambiaron el esquema de versiones y eliminaron el fragmento -jdbc [código], reemplazándolo con .jre6, .jre7 o nada, lo que aparentemente significa que está destinado a la última versión de Java (no he encontrado algo que respalde esta afirmación, pero funciona). Una vez más, en febrero de 2017, cambiaron el esquema de versiones nuevamente y saltó de la versión principal 9 a la 42, haciendo que la versión actual (a partir del 17 de julio de 2017) se denote con "org.postgresql" % "postgresql" % "42.1.3" (o, en consecuencia, "org.postgresql" % "postgresql" % "42.1.3.jre7" / "org.postgresql" % "postgresql" % "42.1.3.jre6" )