2013-02-18 75 views
0

grails v2.0.1配置已被外化爲文件,以便它可以位於安全分區上。當數據源丟失時,如何防止Bootstrap數據遷移運行

這是通過修改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 
     } 
    } 
} 

回答

0

在運行GORM之前添加一個條件更好,但似乎仍然是錯誤的。

class BootStrap { 

    def grailsApplication  

    def init = { servletContext -> 

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

     if (!User.count()) { 
      setupAdminUsers() 
     } 
    } 
}