2009-10-06 19 views
23

¿Alguien ha conseguido que Grails trabaje con Postgres? He usado este tutorial y todo parece tener sentido y ser correcto para mí. Sin embargo, cuando 'griales ejecutar la aplicación' consigo este errorUsando Postgres con Grails

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 

Mi archivo de origen de datos es

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" 
     } 
    } 
} 
+0

sí . He intentado varias versiones de todos modos, pero estoy bastante seguro de que tengo la correcta –

Respuesta

22

Desde el FAQ: "[si] se obtiene un error de tiempo de ejecución que dice 'No controlador adecuado found ', es probable que la URL pasada a DriverManager.getConnection esté mal formada o sea incorrecta ". Entonces, ¿qué pasa con el tuyo? Así, los ejemplos en el tutorial se ven así:

jdbc:postgresql://localhost:5432/grails 

Suyo es así:

jdbc:postgres://10.0.0.21:5432/tribes 

supongo que faltan esas dos cartas están causando molestias.

19

En el archivo BuildConfig.groovy elimine el comentario experto externo repositorios y luego añadir esta línea

tiempo de ejecución 'PostgreSQL: PostgreSQL: 9.0-801.jdbc4' en las dependencias sección

+1

Esta línea es esencial para hacer que Grails hable con Postgresql. Pero no necesita descomentar ningún repositorio Maven externo si ya ha copiado el jar Postgresql JDBC en su directorio project/lib. Además, debe crear la base de datos a la que hace referencia en su url JDBC antes de ejecutar Grails run-app. –

+0

Actualizando esto ya que ha pasado un tiempo desde la respuesta, y la versión del controlador postgresql se ha actualizado. El controlador actual (a partir de enero de 2014) es: 'runtime 'org.postgresql: postgresql: 9.3-1100-jdbc4'' Esto es para JDK 1.6. Deberá cambiar el último 'jdbc4' a 'jdbc3' si todavía está ejecutando JDK 1.5. Para obtener más información, consulte http://jdbc.postgresql.org/download.html – hkong