2011-02-08 61 views
1

我正在使用使用數據源的遺留代碼。我在config.groovy文件中定義它,但是當我運行的代碼EN測試模式,我需要以不同的方式來定義數據源:測試和開發環境中的不同數據源

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

這是正確的,正常嗎?或者我錯過了一些重要的東西?它有效,但我不明白爲什麼我必須以不同的方式定義jndi名稱。

+0

對不起,你在config.groovy`environments {test {...}}`或者`test`上寫了什麼?你在問什麼?對我而言,`environments {development {...} test {...}}`起作用。 – 2011-02-08 11:44:54

回答

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" 
    } 
} 
相關問題