如何在共享相同模式的不同应用程序之间进行数据库模式测试

问题描述 投票:0回答:1

我有两个共享相同数据库架构的SpringBoot微服务的情况。该模式由liquibase changelog文件维护。一个服务从数据库读取,而另一服务负责写入数据库。

正确,Writing Service拥有liquibase changelog文件,这意味着Writing Service拥有架构。我验证Reading Service的方式是先将Writeing服务部署到测试环境中,然后再部署到Reading Service,然后再针对Reading Service执行端到端测试。

两种服务(两个单独的应用程序,两个单独的存储库)是否可以共享liquibase更改日志文件?我觉得这类似于合同测试,因为changelog文件将是这两种服务的合同,但是不确定Liquibase,Spring,Pact等提供的支持此想法的东西。

感谢您的时间!

spring microservices liquibase datacontract pact
1个回答
0
投票

我认为这不算是合法的答案,但是我想到了两个解决方案:

  1. 因为您的第二项服务从数据库读取,所以我想您那里有一整套实体,并且这些实体应该与您的数据库架构匹配。并且由于您正在使用Spring,所以我想您可以将spring.jpa.hibernate.ddl-auto=validate添加到application.properties文件中。这将针对实体验证您的数据库架构。

  2. 您可以创建一个单独的库,其中将包含所有changeLogs。之后,您可以将此库同时包含在两个服务中,因此liquibase将验证在应用程序部署期间是否执行了所有changeSet。但是,您应该确保所有changeSet都具有preConditions,因此部署不会失败,并且数据库架构中不会有任何重复项。

© www.soinside.com 2019 - 2024. All rights reserved.