2013-02-21 2 views
0

Я хочу изменить базу данных из inbuild H2 в базу данных Mysql в grails, документация Grails говорит, что изменение файла Datasource.groovy изменит базу данных, но оно работает только для моей среды разработки но не для тестовой среды. Даже я попытался удалить полный файл Datasource.groovy и удалить базу данных из mysql и попытаться запустить тест, который он просто преуспевает, так что любой орган может помочь в совершении ошибки, которую я делаю.Grails не использует файл DataSource.groovy для тестовой среды

Я отправил почти весь вопрос в stackoverflow каждого тела, предлагая изменить файл DataSource.groovy, но он не работает для меня.

dataSource { 
pooled = true 
driverClassName = "com.mysql.jdbc.Driver" 
dialect = "org.hibernate.dialect.MySQL5InnoDBDialect" 
username = "root" 
logSql =true 
password = "root" 

properties { 
    maxActive = -1 
    minEvictableIdleTimeMillis = 1800000 
    timeBetweenEvictionRunsMillis = 1800000 
    numTestsPerEvictionRun = 3 
    testOnBorrow = true 
    testWhileIdle = true 
    connectionProperties = "[autoReconnectForPools=true]" 
    testOnReturn = true 
    validationQuery = "SELECT 1" 
} 
} 

hibernate { 
cache.use_second_level_cache = true 
cache.use_query_cache = true 
cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' 
} 

environments { 
development { 
    dataSource { 
     dbCreate = "update" // one of 'create', 'create-drop','update' 
     url = "jdbc:mysql://127.0.0.1/devenvi" 
    } 
} 
test { 
    dataSource { 
     dbCreate = "update" // one of 'create', 'create-drop','update' 
     url = "jdbc:mysql://127.0.0.1/testenvi" 
    } 
} 
production { 
    dataSource { 
     dbCreate = "update" 
     url = "jdbc:mysql://127.0.0.1/prodenvi" 
    } 
} 
} 
+0

Не могли бы вы разместить файл DataSource.groovy? –

ответ

2

1) Убедитесь, что у вас есть раздел в DataSource.groovy тестовой среде, например:

dataSource { 
    pooled = true 
    driverClassName = "com.mysql.jdbc.Driver" 
    dialect = org.hibernate.dialect.MySQL5InnoDBDialect 
} 
environments { 
    test { 
     dataSource { 
      url = "jdbc:mysql://liveip.com/liveDb" 
      // other environment-specific settings here 
     } 
    } 
} 

2) убедитесь, что вы делаете сборку, которая определяет тест среды:

/path/to/grails -Dgrails.env=test war 

будет генерировать файл project.war, который будет использовать соответствующую среду настройки в файле DataSource.groovy

+0

Эй, я отправил свой DataSource.groovy. Я использую eclipse для запуска тестового примера – vicky

+0

Вы задаете тестовую среду? Как и в 'grails test run-app' –

+0

, вы можете нажать Command + Option + Shigt + G, чтобы получить меню grails в STS и запустить эту команду там (на Mac, так или иначе) –

Смежные вопросы