Grails在部署期间对数据库和dataSource做了什么?

时间:2014-03-09 16:37:19

标签: grails

当我第一次将它部署到我的生产tomcat服务器时,Grails似乎正在尝试访问我的数据库。我知道这是因为我在stacktrace.log中收到以下错误消息

invalid username/password; login denied

现在,我禁用了数据库创建

dataSource {
    pooled = false
    driverClassName = "oracle.jdbc.OracleDriver"
    dialect = org.hibernate.dialect.Oracle10gDialect
}
hibernate {
    cache.use_second_level_cache = true
    cache.use_query_cache = false
    cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory'
    //Set jdbc metadata to false to not open a session
    temp.use_jdbc_metadata_defaults = false
}
production {
    dataSource {
        dbCreate = "none"
        url = "jdbc:oracle:thin:@1.1.1.1:1521:xe"
    }
}

我不提供数据库密码,因为我们使用数据库用户进行身份验证和授权(请不要批评这个决定,我知道这很糟糕,但我们有一个遗留数据库)。因此,当用户通过客户端发出请求时,会提供用户名/密码。我们使用http://sergiosmind.wordpress.com/2013/03/14/grails-using-a-database-user-for-security-login/进行设置。

似乎Grails应用无法启动,因此。为什么Grails访问数据库?它想做什么?

1 个答案:

答案 0 :(得分:2)

Grails在启动时使用连接来初始化GORM - 有一个用于检测方言,一个用于配置LOB处理程序,而Hibernate连接用于初始化其配置。

我在这两篇博文中讨论了这个问题:http://burtbeckwith.com/blog/?p=312http://burtbeckwith.com/blog/?p=1565