2010-06-28 11 views
5

Ich möchte meine Bootstrap von der createdb-Eigenschaft in der Grails DataSource.groovy Datei abhängig machen. Wenn die Einstellung "create" lautet, sollten neue Stammdaten generiert werden, wenn die Einstellung "update" lautet, keine.Wie bekomme ich grails datasource createdb -Eigenschaft in Bootstrap

Ich habe GrailsDataSource in the Grails API gefunden, die auch eine Methode getCreateDb hat, aber ich weiß nicht, wie man aus dem Bootstrap für die jeweilige Bootstrap-Umgebung darauf zugreifen.

Antwort

3

Der einfachste Weg ist wahrscheinlich den Wert von DBCreate aus der Config nur zu überprüfen, etwa so:

import org.codehaus.groovy.grails.commons.ApplicationHolder 

if (ApplicationHolder.application.config.dataSource.dbCreate == "create") { 
    ...do create stuff... 
} else if (ApplicationHolder.application.config.dataSource.dbCreate == "update") { 
    ...do update stuff... 
} 
+0

Genau das, was ich gesucht habe, danke! –

9

Die up-to-date Weg DBCreate Eigenschaft ist die Injektion 'grailsApplication' zu BootStrap.groovy erhalten :

def grailsApplication 

if(grailsApplication.config.dataSource.dbCreate == 'create'){ 
    ... 
} 

ApplicationHolder ist jetzt veraltet und ich konnte es nicht zum Funktionieren bringen.

Ich hoffe, es hilft jemandem.

0

Antwort von ataylor ist veraltet. Bitte beachten Sie How to access Grails configuration in Grails 2.0?.

Auch sollte in canotto90 Antwort darauf hingewiesen werden, dass die Injektion def grailsApplication außerhalb von Init Schließung von BootStrap erscheinen sollte. Auf andere Weise erhalten Sie NPE.