PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Reproduzir Não é possível conectar ao banco de dados (PostgreSQL) [padrão]


Então, a resposta definitiva é:

Primeiro, há um erro na url do banco de dados, deve ser db.default.url="jdbc:postgresql://localhost:5432/playdb" como chabeee apontou . É o único formato correto para db.default.url (portanto, não jdbc:postgresql://username:pasword:localhost/dbname ou similar, como já vi sugerindo em outros lugares).

Segundo, mais complicado, é que há um bug no driver, como Salem apontou e a solução alternativa é adicionar db.default.hikaricp.connectionTestQuery = "SELECT 1" para application.conf .
No entanto, esse bug foi corrigido (bem, essa solução alternativa foi implementada) em versões mais recentes que 9.1-903 . O problema é, após a versão 9.1-901 postgresql mudou seu groupID nos repositórios e agora é referenciado por org.postgresql . Uma solução melhor do que a solução alternativa seria atualizar as dependências para "org.postgresql" % "postgresql" % "9.4-1206-jdbc4" (versão atual , MVNrepository ). Anexe a versão apropriada do jdbc ao driver PostgreSQL mais recente (4 para Java 6, 41 para Java 7, 42 para Java 8).

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

E libraryDependencies em build.sbt :
libraryDependencies ++= Seq(
  jdbc,
  "org.postgresql" % "postgresql" % "9.4-1206-jdbc42",
  cache,
  javaWs
)

ATUALIZAÇÃO 2017: Só agora notei que, pouco depois de escrever esta resposta, eles mudaram o esquema de versão e removeram o fragmento -jdbc[code], substituindo-o por .jre6, .jre7 ou nada, aparentemente significando que é para a versão mais recente do Java (eu não encontrei qualquer coisa que suporte esta afirmação, mas funciona). Mais uma vez, em fevereiro de 2017, eles alteraram o esquema de versão novamente e saltou da versão principal 9 para 42, tornando a versão atual (a partir de 17 de julho de 2017) denotada por "org.postgresql" % "postgresql" % "42.1.3" (ou, portanto, "org.postgresql" % "postgresql" % "42.1.3.jre7" / "org.postgresql" % "postgresql" % "42.1.3.jre6" )