2010-06-28 13 views
5

Me gustaría hacer que mi Bootstrap dependa de la propiedad createdb en el archivo grails DataSource.groovy. Cuando la configuración es 'crear', se deben generar nuevos Datos Maestros, si la configuración es 'actualizar', ninguno.Cómo obtener la propiedad datasource de grails creadab en bootstrap

He encontrado GrailsDataSource in the Grails API que también tiene un método getCreateDb, pero no sé cómo acceder a él desde Bootstrap para el entorno respectivo de Bootstrap.

Respuesta

3

La forma más sencilla es probablemente sólo comprobar el valor de DBCREATE de la configuración, así:

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

¡Exactamente lo que he estado buscando, gracias! –

9

El 'grailsApplication' hasta a la fecha de manera de obtener la propiedad DBCREATE está inyectando a BootStrap.groovy :

def grailsApplication 

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

ApplicationHolder ahora está en desuso y no pude hacerlo funcionar.

Espero que ayude a alguien.

0

La respuesta de ataylor está desaprobada. Por favor, consulte How to access Grails configuration in Grails 2.0?.

También debe tenerse en cuenta en la respuesta canotto90 que la inyección def grailsApplication debería aparecer fuera del cierre de inicio de BootStrap. De otra manera, obtienes NPE.

Cuestiones relacionadas