gpt4 book ai didi

hibernate - Grails加载属性文件并同时使用dbCreate =“create-drop”

转载 作者:行者123 更新时间:2023-12-02 14:53:35 26 4
gpt4 key购买 nike

我在环境配置上遇到了一些麻烦。对于某些测试,我们需要一个用于集成测试的真实数据库。为了每次启动测试时都拥有一个干净的数据库,我们认为我们只是在已经加载的配置文件中更改dbCreate属性:

config-integration.properties:

# connection
db.name=integration_test
db.host=127.0.0.1
db.port=3306
dataSource.driverClassName=com.mysql.jdbc.Driver
dataSource.url=jdbc:mysql://${db.host}:${db.port}/${db.name}?useUnicode=yes&characterEncoding=UTF-8&autoReconnect=true
dataSource.dialect=org.hibernate.dialect.MySQL5InnoDBDialect

# configuration
dataSource.username=foo
dataSource.password=bar
dataSource.dbCreate=create-drop
dataSource.pooled=true
dataSource.properties.maxActive=50
dataSource.properties.maxIdle=25
dataSource.properties.minIdle=5
dataSource.properties.initialSize=5
dataSource.properties.minEvictableIdleTimeMillis=60000
dataSource.properties.timeBetweenEvictionRunsMillis=60000
dataSource.properties.maxWait=10000
dataSource.properties.validationQuery=/* ping */

Config.groovy:
environment {
....
integration {
log4j = {
root { debug 'stdout' }
warn 'org.apache'
warn 'grails.spring'
info 'org.codehaus.groovy.grails'
warn 'net.sf.ehcache'
warn 'org.hibernate'
}

grails.serverURL = "http://www.foobar.com"

if (!grails.config.locations || !(grails.config.locations instanceof List)) {
grails.config.locations = []
}
// loading default configuration
grails.config.locations << "classpath:app/config-integration.properties"

grails.gorm.failOnError = true
}
....
}

现在的问题是,这根本行不通。未创建表,因此测试因SQL异常而终止。如果我将用户名/密码更改为错误的用户名/密码,则什至没有消息。因此,当grails / hibernate应该在数据库中创建表时,似乎未加载配置。

编辑:我忘记了什么:如果我在Config.groovy本身中定义了数据源,那么它将起作用。

有人知道我在做什么错吗?

在此先多谢!

最佳答案

这可能是我正在寻找的la脚的说明,但您使用的是

environment{
test{
....
}
}

要么
environment{
integration{
....
}
}

DSL在配置文件中?

如果我没记错的话,我们只有 developmenttestproduction环境DSL可用。

关于hibernate - Grails加载属性文件并同时使用dbCreate =“create-drop”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16064375/

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