raz*_*azr 5 test-data flyway spring-boot
是否可以组合使用YAML编写的多个spring-boot配置文件中相同元素的列表?
例:
postgres.yml包含我的postgres db信息.它还包含我的迁移脚本的flyway位置:
---
flyway:
locations:
- flyway/migrations/postgres
Run Code Online (Sandbox Code Playgroud)
与我的oracle迁移相同:
---
flyway:
locations:
- flyway/migrations/oracle
Run Code Online (Sandbox Code Playgroud)
现在,如果我想用test-data启动我的应用程序,我想要包含我的test_data目录(这些数据适用于postgres和oracle):
---
flyway:
locations:
- flyway/test_data
Run Code Online (Sandbox Code Playgroud)
当我使用活动配置文件运行应用程序时,postgres,testdata不会加载迁移,因为location-entry被test-data-file覆盖.
对于这个设置,我可以创建四个配置文件来运行带有和没有测试数据的每个数据库,但如果我有四个不同的数据库和三组测试数据,我该怎么办?
不幸的是,正如Spring 文档中所述,目前这是不可能的。如果您提前知道配置文件名称集,则可以通过创建单独的列表(以配置文件名称为前缀)来解决此问题,然后在您的 bean 中添加将它们合并到最终列表中的代码。该代码只会迭代所有已知的配置文件名称前缀,如果配置文件未激活,则该列表将为空。
不幸的是,如果您不拥有该豆(例如您的 Flyway 案例),这似乎会更困难。不过,这可能仍然是可能的。
| 归档时间: |
|
| 查看次数: |
1374 次 |
| 最近记录: |