UPDATE: OK quindi è in realtà bisogno di dire Grails non mettere in comune le origini dati, dal momento che HikariCP ora sta prendendo cura di questo.
Ho visto stranezze di connessione nelle mie app se ho lasciato quell'interruttore. Quindi diciamo:
OK sì, @Joshua Moore ha ragione.
Ho provato a farlo con i metodi aggiornati di Grails e questa è la sezione pertinente del mio file resources.groovy
. Per quanto posso capire, i valori di configurazione in Datasource.groovy
vengono inseriti in resources.groovy
in fase di runtime, dopo che l'ambiente di runtime di destinazione è stato identificato (development
, test
o production
).
def config = Holders.config
def dataSources = config.findAll {
it.key.toString().contains("dataSource_")
}
dataSources.each { key, value ->
def ds = value
"${key}"(HikariDataSource, { bean ->
def hp = new Properties()
hp.username = ds.username
hp.password = ds.password
hp.connectionTimeout = 6000
hp.maximumPoolSize = 60
hp.jdbcUrl = ds.url
hp.driverClassName = ds.driverClassName
HikariConfig hc = new HikariConfig(hp)
bean.constructorArgs = [hc]
})
}
E questa è la sezione dedicata mia configurazione DataSource.groovy
:
// environment specific settings
environments {
development {
dataSource_myapp1 {
pooled = false
username = "CONFIGURE_ME_EXTERNALLY"
password = "CONFIGURE_ME_EXTERNALLY"
driverClassName = 'oracle.jdbc.OracleDriver'
dialect = 'org.hibernate.dialect.Oracle10gDialect'
url = 'jdbc:oracle:thin:@MYDBHOST1:1521/MYSERVICEID1'
}
dataSource_myApp2 {
pooled = false
username = "CONFIGURE_ME_EXTERNALLY"
password = "CONFIGURE_ME_EXTERNALLY"
driverClassName = 'oracle.jdbc.OracleDriver'
dialect = 'org.hibernate.dialect.Oracle10gDialect'
url = 'jdbc:oracle:thin:@MYDBHOST2:1521/MYSERVICEID2'
}
}
}
Nel mio caso, è praticamente la stessa per test
e production
ambienti. Grazie!
fonte
2014-09-10 21:55:05
Questo Gist dovrebbe funzionare per qualsiasi versione di Grails. –
@JoshuaMoore True, ma probabilmente dovrebbe essere aggiornato per utilizzare 'grails.util.Holders' al posto delle singole classi di Titolari deprecate. – rmlan
@rmlan D'accordo, ma l'approccio è sempre lo stesso. –