TEST和开发环境中的不同数据源

时间:2011-02-08 10:59:25

标签: database testing grails

我正在使用使用数据源的遗留代码。我在config.groovy文件中定义它,但是当我在TEST模式下运行代码时,我需要以不同的方式定义数据源:

environments {
    development {
    grails.naming.entries = [
        "jdbc/AS400DS": [
               ...
        ]
    ]
    }
    test {
    grails.naming.entries = [
        "java:comp/env/jdbc/AS400DS": [
               ...
        ]
    ]
    }
}

这是正确和正常的吗?还是我错过了重要的事情?它有效,但我不明白为什么我必须以不同的方式定义jndi名称。

1 个答案:

答案 0 :(得分:1)

通常,数据源连接应在grails-app / conf / DataSource.groovy中定义。您仍然可以维护多个环境声明,语法更简单。您还可以为JNDI连接和休眠缓存定义全局设置。

dataSource {
    pooled = false
}

hibernate {
    cache.use_second_level_cache=true
    cache.use_query_cache=true
    cache.provider_class='org.hibernate.cache.EhCacheProvider'
}

// environment specific settings
environments {
    development {
        dataSource {
            dbCreate = "validate" // one of 'create', 'create-drop','update'
            jndiName = "java:comp/env/jdbc/databaseName"
        }
    }
    test {
        dataSource {
            driverClassName = "com.mysql.jdbc.Driver"
            username = "username"
            password = "password"
            dbCreate = "validate" // one of 'create', 'create-drop','update'
            url = "jdbc:mysql://127.0.0.1:3306/databaseName"
    }
}