grails v2.0.1配置已外部化为一个文件,因此它可以位于安全分区上。
这是通过修改Config.groovy和DataSource.groovy
来完成的grails.config.locations = ["file:/Volumes/secure/local.config.groovy"]
当这个添加的配置位置不可用时,Bootstrap代码无法连接到数据库,我收到了这个令人困惑的错误:
运行Grails应用程序 错误util.JDBCExceptionReporter - 未找到表“USER”; SQL语句: 从用户this_选择count(*)为y0_ ;嵌套异常是org.hibernate.exception.SQLGrammarException:无法执行查询
我想要一个错误,告诉我数据源不可用。我需要更改我的grails配置才能做到这一点?
class BootStrap {
def init = { servletContext ->
if (!User.count()) {
setupAdminUsers() // inserts admin user for shiro
}
}
}
答案 0 :(得分:1)
这些是旧式引导数据迁移,应作为迁移添加(使用database migration插件)
答案 1 :(得分:0)
在运行GORM之前添加条件更好,但似乎仍然是错误的。
class BootStrap {
def grailsApplication
def init = { servletContext ->
if (!grailsApplication.resources) {
throw new RuntimeException("data source is missing")
}
if (!User.count()) {
setupAdminUsers()
}
}
}