5

我想让我的 Bootstrap 依赖于 grails DataSource.groovy 文件中的 createdb 属性。当设置为“创建”时,应生成新的主数据,如果设置为“更新”,则无。

在 Grails API 中找到了 GrailsDataSource,它也有一个方法 getCreateDb,但我不知道如何从 Bootstrap 访问它以用于相应的 Bootstrap 环境。

4

3 回答 3

9

获取 dbCreate 属性的最新方法是将“grailsApplication”注入 BootStrap.groovy:

def grailsApplication

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

ApplicationHolder 现在已被弃用,我无法让它工作。

希望它可以帮助某人。

于 2012-08-20T21:29:24.647 回答
3

最简单的方法可能是从配置中检查 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...
}
于 2010-06-28T17:41:51.843 回答
0

不推荐使用来自 ataylor 的回答。请参考如何在 Grails 2.0 中访问 Grails 配置?.

在 canotto90 回答中还应该注意,注入def grailsApplication应该出现在 BootStrap 的 init 闭包之外。以其他方式你得到NPE。

于 2013-03-13T14:23:09.810 回答