我想让我的 Bootstrap 依赖于 grails DataSource.groovy 文件中的 createdb 属性。当设置为“创建”时,应生成新的主数据,如果设置为“更新”,则无。
我在 Grails API 中找到了 GrailsDataSource,它也有一个方法 getCreateDb,但我不知道如何从 Bootstrap 访问它以用于相应的 Bootstrap 环境。
我想让我的 Bootstrap 依赖于 grails DataSource.groovy 文件中的 createdb 属性。当设置为“创建”时,应生成新的主数据,如果设置为“更新”,则无。
我在 Grails API 中找到了 GrailsDataSource,它也有一个方法 getCreateDb,但我不知道如何从 Bootstrap 访问它以用于相应的 Bootstrap 环境。
获取 dbCreate 属性的最新方法是将“grailsApplication”注入 BootStrap.groovy:
def grailsApplication
if(grailsApplication.config.dataSource.dbCreate == 'create'){
...
}
ApplicationHolder 现在已被弃用,我无法让它工作。
希望它可以帮助某人。
最简单的方法可能是从配置中检查 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...
}
不推荐使用来自 ataylor 的回答。请参考如何在 Grails 2.0 中访问 Grails 配置?.
在 canotto90 回答中还应该注意,注入def grailsApplication
应该出现在 BootStrap 的 init 闭包之外。以其他方式你得到NPE。