Как получить свойство созданного источника данных grails в начальной загрузке - PullRequest
5 голосов
/ 28 июня 2010

Я бы хотел, чтобы моя Bootstrap зависела от свойства созданного в файле grails DataSource.groovy. Если для параметра установлено значение «создать», должны быть созданы новые основные данные, если для параметра установлено «обновление», то нет.

Я нашел GrailsDataSource в Grails API , который также имеет метод getCreateDb, но я не знаю, как получить к нему доступ из Bootstrap для соответствующей среды Bootstrap.

Ответы [ 3 ]

9 голосов
/ 21 августа 2012

Современный способ получения свойства dbCreate - это внедрение grailsApplication в BootStrap.groovy:

def grailsApplication

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

ApplicationHolder устарел, и я не смог заставить его работать.

Надеюсь, это кому-нибудь поможет.

3 голосов
/ 28 июня 2010

Самый простой способ - просто проверить значение dbCreate из конфига, например так:

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 голосов
/ 13 марта 2013

Ответ от атайлора устарел. Пожалуйста, обратитесь к Как получить доступ к конфигурации Grails в Grails 2.0? .

Также в ответе canotto90 следует отметить, что инъекция def grailsApplication должна появляться за пределами инициализации BootStrap. В противном случае вы получите NPE.

...