0

grails v2.0.1 配置已外部化到一个文件中,以便它可以位于安全分区上。

这是通过修改 Config.groovy 和 DataSource.groovy 来完成的

grails.config.locations = ["file:/Volumes/secure/local.config.groovy"]

当这个添加的配置位置不可用时,引导代码无法连接到数据库,我得到这个令人困惑的错误:

运行 Grails 应用程序错误 util.JDBCExceptionReporter - 未找到表“USER”;SQL 语句: select count(*) as y0_ from user this_ ; 嵌套异常是 org.hibernate.exception.SQLGrammarException:无法执行查询

我想要一个错误,告诉我数据源不可用。我需要在我的 grails 配置中进行哪些更改才能做到这一点?

class BootStrap {

    def init = { servletContext ->

        if (!User.count()) {
            setupAdminUsers() // inserts admin user for shiro
        }
    }
}
4

2 回答 2

1

这些是旧式引导数据迁移,应作为迁移添加(使用数据库迁移插件)

于 2013-02-18T18:35:09.153 回答
0

在运行 GORM 之前添加条件更好,但似乎仍然是错误的。

class BootStrap {

    def grailsApplication    

    def init = { servletContext ->

        if (!grailsApplication.resources) {
           throw new RuntimeException("data source is missing")
        }

        if (!User.count()) {
            setupAdminUsers()
        }
    }
}
于 2013-02-18T18:27:09.830 回答