问题描述
我想使用 liquibase 为 quarkus 中的本机测试使用一些数据填充数据库。目前我有三个配置文件:prod
dev
test
。 JVM 测试是成功的,但在构建原生应用程序时,原生测试失败(例如使用 -Dquarkus.profile=dev -Dquarkus.test.native-image-profile=test
):
...
Caused by: org.postgresql.util.PsqlException: ERROR: relation "qrtz_locks" does not exist
...
Caused by: org.postgresql.util.PsqlException: ERROR: relation "qrtz_triggers" does not exist
另外我想指出的是,我想对我拥有的每个配置文件(test
、prod
、dev
)使用配置文件 test
运行本机测试.我用来运行本机测试的命令:
./gradlew clean build testNative -Dquarkus.package.type=native -Dquarkus.native.container-build=true -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-native-image:20.3.0-java11 -Dquarkus.profile=<profile> -Dquarkus.test.native-image-profile=test
build.gradle
:
...
implementation 'io.quarkus:quarkus-quartz'
implementation 'org.liquibase:liquibase-core'
...
testImplementation 'io.quarkus:quarkus-liquibase'
testImplementation 'org.testcontainers:testcontainers'
testImplementation 'org.testcontainers:postgresql'
...
application.properties
:
quarkus.datasource.db-kind=postgresql
application-dev.properties
:
quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/db
quarkus.datasource.username=db
quarkus.datasource.password=db
application-test.properties
:
quarkus.liquibase.migrate-at-start=true
quarkus.liquibase.change-log=<path-to-changelog>
对于 JVM 测试,liquibase 使用石英表在 testcontainers 中填充数据库,但对于本机测试,它没有。
如果没有 testNative
,应用程序构建到本机并且运行得非常好。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)