【发布时间】:2021-11-22 05:10:35
【问题描述】:
我有一个 quarkus 2.3.0.RC1 项目设置,使用响应式 postgres 作为与我的数据库的连接。
我的测试应用程序.yml
quarkus:
datasource:
db-kind: postgresql
jdbc: false
username:
password:
reactive:
url:
max-size: 20
这应该告诉 quarkus 生成一个 postgresql 的 testcontainer 实例。但是在此之前,我遇到了飞行路线迁移的问题。
flyway 使用 jdbc,因此我必须将这个类添加为包装器以允许它运行
@ApplicationScoped
public class RunFlyway {
@ConfigProperty(name = "quarkus.datasource.reactive.url")
String datasourceUrl;
@ConfigProperty(name = "quarkus.datasource.username")
String datasourceUsername;
@ConfigProperty(name = "quarkus.datasource.password")
String datasourcePassword;
public void runFlywayMigration(@Observes StartupEvent event) {
Flyway flyway = Flyway.configure()
.dataSource("jdbc:" + datasourceUrl, datasourceUsername, datasourcePassword).load();
flyway.migrate();
}
}
然而,这似乎将我的main/resoruces/applciation.yml 内容作为属性,我可以忽略它,但我不知道如何以编程方式获取 quarkus 通过 testcontainers 创建的生成的 postgresql 实例的 url。这甚至可能吗?
【问题讨论】:
标签: java junit quarkus flyway testcontainers