2016-01-15 12 views
5

Sto usando IntelliJ IDEA 15.0.2 come IDE. Ho creato un'applicazione Grails 3.0 e l'ho modificata un po 'per configurare PostgreSQL.Come configurare PostgreSQL con Grails 3.0?

Ecco il mio dataSource:

dataSource: 
pooled: true 
jmxExport: true 
driverClassName: org.postgresql.Driver 
username: postgres 
password: root 

environments: 
development: 
    dataSource: 
     dbCreate: update 
     url: jdbc:postgresql://localhost:5432/trace_db 
test: 
    dataSource: 
     dbCreate: update 
     url: jdbc:postgresql://localhost:5432/trace_db 
production: 
    dataSource: 
     dbCreate: update 
     url: jdbc:postgresql://localhost:5432/trace_db 
     properties: 
      jmxEnabled: true 
      initialSize: 5 
      maxActive: 50 
      minIdle: 5 
      maxIdle: 25 
      maxWait: 10000 
      maxAge: 600000 
      timeBetweenEvictionRunsMillis: 5000 
      minEvictableIdleTimeMillis: 60000 
      validationQuery: SELECT 1 
      validationQueryTimeout: 3 
      validationInterval: 15000 
      testOnBorrow: true 
      testWhileIdle: true 
      testOnReturn: false 
      jdbcInterceptors: ConnectionState 
      defaultTransactionIsolation: 2 # TRANSACTION_READ_COMMITTED 

E nella mia build.gradle ho aggiunto runtime "postgresql:postgresql:9.4-1207.jdbc4".

ma che dà errori quando corro:

ERROR org.apache.tomcat.jdbc.pool.ConnectionPool - Unable to create initial connections of pool. 
java.sql.SQLException: org.postgresql.Driver 

Che cosa ho mancato?

+1

Avete il driver JDBC postgresql sul classpath? –

+0

Si prega di accettare una risposta. –

risposta

4

Fonte dei dati

dataSource { 
    pooled = true 
    jmxExport = true 
    driverClassName = "org.postgresql.Driver" 
    username = "postgres" 
    password = "xxx" 

Corporatura Config

dependencies { 
     // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes e.g. 
     // runtime 'mysql:mysql-connector-java:5.1.29' 
     // runtime 'org.postgresql:postgresql:9.3-1101-jdbc41' 
     runtime "org.postgresql:postgresql:9.4.1208.jre7" 
     test "org.grails:grails-datastore-test-support:1.0.2-grails-2.4" 
    } 

Modificare il numero jre secondo il vostro db versione numbe psql. Spero di aver aiutato. Saluti!

0

Eseguire l'applicazione Grails utilizzando grails run-app anziché eseguirlo tramite IntelliJ. Ho avuto questo issue too with MySQL.

Non riesco ancora a capire come utilizzare correttamente IntelliJ, ma almeno funziona quando si utilizza la console Grails!

Nota: si presume che il driver JDBC sia già configurato correttamente. Avevo il mio setup corretto per MySQL e continuavo a scavare, pensando che avrei sbagliato in qualche modo.

0

Non so se è stata fornita una risposta, ma ho scoperto che l'uso di application.yml non mi dava accesso alla configurazione dell'origine dati, ma presupponeva il driver H2.

build.gradle (dipendenze unico blocco):

compile "org.springframework.boot:spring-boot-starter-logging" 
compile "org.springframework.boot:spring-boot-autoconfigure" 
compile "org.grails:grails-core" 
compile "org.springframework.boot:spring-boot-starter-actuator" 
compile "org.springframework.boot:spring-boot-starter-tomcat" 
compile "org.grails:grails-dependencies" 
compile "org.grails:grails-web-boot" 
compile "org.grails.plugins:cache" 
compile "org.grails.plugins:scaffolding" 
compile "org.grails.plugins:hibernate4" 
compile "org.hibernate:hibernate-ehcache" 

runtime "postgresql:postgresql:9.4.1208-atlassian-hosted" 

compile "org.grails.plugins:spring-security-core:3.0.4" 

console "org.grails:grails-console" 
profile "org.grails.profiles:web:3.1.6" 
runtime "com.bertramlabs.plugins:asset-pipeline-grails:2.8.2" 

testCompile "org.grails:grails-plugin-testing" 
testCompile "org.grails.plugins:geb" 
testRuntime "org.seleniumhq.selenium:selenium-htmlunit-driver:2.47.1" 
testRuntime "net.sourceforge.htmlunit:htmlunit:2.18" 

Erased tutto ciò che riguarda database da application.yml e invece usato l'application.groovy:

dataSource{ 
    pooled= true 
    jmxExport=true 
    driverClassName= 'org.postgresql.Driver' 
    username= 'xxxx' 
    password= 'xxxx' } 

environments{ 
    development{ 
     dataSource{ 
      dbCreate= 'create-drop' 
      url= "jdbc:postgresql://localhost:5432/xxx" 
      logSql= true 
      hibernate.default_schema= "template_dm" 
     } 
    } 
    test{ 
     dataSource{ 
      dbCreate= 'create-drop' 
      url= "jdbc:postgresql://localhost:5432/xxx" 
      logSql= true 
      hibernate.default_schema= "template_dm" 
     } 
    } 
    production{ 
     dataSource{ 
      dbCreate= 'create-drop' 
      url= "jdbc:postgresql://localhost:5432/xxx" 
      logSql= true 
      hibernate.default_schema= "template_dm" 
     } 
    } 

} 

Spero che questo aiuti tutti con il stesso problema.

Acclamazioni

1

Sembra che si dispone di una scheda mancante nella configurazione

dataSource: 
    pooled: true 
    jmxExport: true 
    driverClassName: org.postgresql.Driver 
    username: postgres 
    password: root 

Tutto dopo origine dati ha bisogno di essere rientrato.

Problemi correlati