Todd
Todd

Reputation: 1822

Postgresql with Play Framework

Im trying to use Postgresql with Play for their Yabe tutorial and get this error:

Cannot connected to the database, Driver not found (org.postgresql.Driver)

Here is my connection string:

# If you need a full JDBC configuration use the following :
 db.url=jdbc:postgresql:yabe
 db.driver=org.postgresql.Driver  
 db.user=yabe
 db.pass=yabe
#
# Connections pool configuration :
 db.pool.timeout=1000
 db.pool.maxSize=30
 db.pool.minSize=1

In my lib folder I have this: postgresql-9.1-901.jdbc3.jar

I tried changing the driver name to the same name is tha jar but still get the same error. Any ideas?

Upvotes: 9

Views: 17259

Answers (5)

Anthony Skipper
Anthony Skipper

Reputation: 924

If you are using Play 2.0 this works slightly differently. The url actually looks like this:

db.default.driver=org.postgresql.Driver
db.default.url="postgres://user:password@servername/dataBaseName"

But this will also error out unless you add the following lines to you dependencies section in build.scala or build.java:

"postgresql" % "postgresql" % "9.1-901.jdbc4"

Upvotes: 40

reen
reen

Reputation: 2502

If you need SSL support:

db=postgres://user:password@server.example.net:5432/dbname?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory

Upvotes: 13

Pere Villega
Pere Villega

Reputation: 16439

The Play framework already includes the driver for Postgres. do the following:

  • Remove any reference to postgreSQL drivers from your dependencies.yml files
  • Do a "play deps --sync"
  • Remove any jar in your lib/ folder related to postgreSQL drivers
  • Change your connection string to:

    db=postgres://user:pwd@localhost:5432/yabe

This should solve the conflict you have.

Upvotes: 10

sojin
sojin

Reputation: 4694

You should copy PostgresSql driver version "JDBC 4" [What you have is JDBC 3]. Get it from here

Alternatively you may use - postgresql 9.1-901.jdbc4 in your dependencies. But I think Maven doesn't have this latest version yet.

Upvotes: 3

Alan
Alan

Reputation: 140

You don't need to edit a full JDBC configuration. I use postgesql in local and I just add this line in application.conf file in conf folder :

# To connect to a local PostgreSQL9 database, use:
db=postgres://userName:yourPassword@localhost:5432/nameOfYourDB

If you are in local, userName is often postgres unless you changed it.

Upvotes: 6

Related Questions