2009-10-06 9 views
23

Quelqu'un a-t-il fait travailler Grails avec Postgres? J'ai utilisé ce tutorial et tout semble logique et correct pour moi. Cependant quand je Grails lance-app "Je reçois cette erreurUtilisation de Postgres avec 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 

Mon fichier DataSource est

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

oui . J'ai essayé plusieurs versions de toute façon mais je suis sûr que j'ai le bon –

Répondre

22

De l'FAQ: « [si] vous obtenez une erreur d'exécution qui dit « Aucun pilote approprié found ', il est probable que l'URL transmise à DriverManager.getConnection soit incorrecte ou incorrecte ". Alors, quel est le problème avec le vôtre? Eh bien, les exemples du didacticiel ressemblent à ceci:

jdbc:postgresql://localhost:5432/grails 

vôtre ressemble à ceci:

jdbc:postgres://10.0.0.21:5432/tribes 

Je devine que ces deux lettres manquantes sont à l'origine de votre problème.

19

Dans le fichier BuildConfig.groovy décommenter le maven externe dépôts puis ajoutez cette ligne

exécution 'postgresql: postgresql: 9.0-801.jdbc4' dans les dépendances section

+1

Cette ligne est essentielle pour que Grails parle à Postgresql. Mais vous n'avez pas besoin de décommenter les dépôts Maven externes si vous avez déjà copié le fichier JDBC Postgresql dans votre répertoire projet/lib. En outre, vous devez créer la base de données que vous référencez dans votre URL JDBC avant de faire grails run-app. –

+0

Mise à jour depuis la réponse, et la version du pilote postgresql a été mise à jour. Le pilote actuel (en janvier 2014) est: 'runtime 'org.postgresql: postgresql: 9.3-1100-jdbc4'' Ceci est pour JDK 1.6. Vous devrez changer ce dernier 'jdbc4' en 'jdbc3' si vous utilisez toujours JDK 1.5. Pour plus d'informations, voir http://jdbc.postgresql.org/download.html – hkong