Joe Cannatti
Joe Cannatti

Reputation: 5089

Using Postgres with Grails

Has anyone gotten Grails working with Postgres? I have used this tutorial and everything seems to make sense and be correct to me. However when I 'grails run-app' I get this error

Cannot create JDBC driver of class 'org.postgresql.Driver' for connect URL 'jdbc:postgres://10.0.0.21/tribes'
java.sql.SQLException: No suitable driver

My DataSource file is

dataSource {
    pooled = true
    driverClassName = "org.postgresql.Driver"
    dialect = org.hibernate.dialect.PostgreSQLDialect
}
hibernate {
    cache.use_second_level_cache=true
    cache.use_query_cache=true
    cache.provider_class='com.opensymphony.oscache.hibernate.OSCacheProvider'
}
// environment specific settings
environments {
    development {
        dataSource {
            dbCreate = "update"
            url = "jdbc:postgres://10.0.0.21:5432/tribes"
            username = "grails"
            password = "grails"
        }   
    }   
    test {
        dataSource {
            dbCreate = "update"
            url = "jdbc:postgres://10.0.0.21:5432/tribes"
            username = "grails"
            password = "grails"
        }   
    }   
    production {
        dataSource {
            dbCreate = "update"
            url = "jdbc:postgres://10.0.0.21:5432/tribes"
            username = "grails"
            password = "grails"
        }   
    }   
}

Upvotes: 22

Views: 24810

Answers (2)

Ganesh Krishnan
Ganesh Krishnan

Reputation: 7395

In the BuildConfig.groovy file uncomment the external maven repositories and then add this line

runtime 'postgresql:postgresql:9.0-801.jdbc4' in the dependencies section

Upvotes: 19

Greg Smith
Greg Smith

Reputation: 18206

From the FAQ: "[if] you get a runtime error that says 'No suitable driver found', it is likely that the URL passed to DriverManager.getConnection is malformed or otherwise incorrect". So what's wrong with yours? Well, the examples in the tutorial look like this:

jdbc:postgresql://localhost:5432/grails

Yours looks like this:

jdbc:postgres://10.0.0.21:5432/tribes

I'm guessing those missing two letters are causing your trouble.

Upvotes: 23

Related Questions