我有一个夸克2.3.0。RC1项目设置与响应postgres连接到我的数据库。
My test application.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。这可能吗?
的问题实际上是我的属性是如何被读
作为测试,我设置了主/应用程序。Yml只运行一个特定的配置文件(例如application-live.yml)。就像这样,测试找不到属性,它被正确加载,url被成功注入