gpt4 book ai didi

grails - Grails没有将DataSource.groovy文件用于测试环境

转载 作者:行者123 更新时间:2023-12-02 15:11:27 24 4
gpt4 key购买 nike

我想在grails中将数据库从inbuild H2更改为Mysql数据库,Grails文档说Datasource.groovy文件中的更改将更改数据库,但它仅适用于我的开发环境,不适用于测试环境,即使我尝试删除完整的数据库也是如此。 Datasource.groovy文件并从mysql删除数据库,然后尝试运行测试它是否成功,所以任何机构都可以帮助我做错什么。

我几乎已经在每个人都建议更改DataSource.groovy文件的stackoverflow中解决了所有问题,但这对我不起作用。

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"
}
}
}

最佳答案

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文件中的适当环境设置

关于grails - Grails没有将DataSource.groovy文件用于测试环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15003284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com