2011-02-08 3 views
1

데이터 소스를 사용하는 레거시 코드로 작업하고 있습니다. 나는 config.groovy 파일에 정의,하지만 난 다른 방법으로 데이터 소스를 정의 할 필요가 TEST 모드 EN 코드를 실행하면TEST 및 DEVELOPMENT 환경의 다른 데이터 소스

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

이 정확하고 정상인가를? 아니면 중요한 것을 놓친 것입니까? 그것은 작동하지만, 왜 다른 방식으로 jndi 이름을 정의해야하는지 이해할 수 없습니다.

+0

죄송합니다. config.groovy'환경 {test {...}} '또는 최상위 레벨의'test {}'로 작성 하시겠습니까? 네가 묻고있는거야? 나를 위해,'환경 {개발} {테스트} {}} '작품. –

+0

안녕하세요 빅터, 그 문제를 명확히하기 위해 질문을 다시 한 번 말했습니다. 죄송합니다. 올바른 방향으로 넣지 않는 것이 내 잘못이었습니다. – Aitor

답변

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" 
    } 
} 
관련 문제