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

Spring 如何跨共享相同模式的不同应用程序进行数据库模式测试,spring,microservices,liquibase,datacontract,pact,Spring,Microservices,Liquibase,Datacontract,Pact,我有两个SpringBoot微服务共享相同的数据库模式。架构由liquibase变更日志文件维护。一个服务从数据库读取数据,另一个服务负责向数据库写入数据 右侧,写入服务拥有liquibase变更日志文件,这意味着写入服务拥有模式。我验证读取服务的方法是首先将写入服务部署到测试环境中,然后再部署读取服务,然后对读取服务执行端到端测试 两个服务(两个单独的应用程序、两个单独的回购)是否都有办法共享liquibase变更日志文件?我觉得这类似于契约测试,因为changelog文件将是这两个服务的契约

我有两个SpringBoot微服务共享相同的数据库模式。架构由liquibase变更日志文件维护。一个服务从数据库读取数据,另一个服务负责向数据库写入数据

右侧,写入服务拥有liquibase变更日志文件,这意味着写入服务拥有模式。我验证读取服务的方法是首先将写入服务部署到测试环境中,然后再部署读取服务,然后对读取服务执行端到端测试

两个服务(两个单独的应用程序、两个单独的回购)是否都有办法共享liquibase变更日志文件?我觉得这类似于契约测试,因为changelog文件将是这两个服务的契约,但不确定Liquibase、Spring、Pact等是否提供了支持这一想法的内容


谢谢你的时间

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

  • 因为您的第二个服务从数据库中读取数据,所以我认为您在那里有一整套实体,并且实体应该与您的数据库模式相匹配。由于您使用的是Spring,我想您可以将
    Spring.jpa.hibernate.ddl auto=validate
    添加到
    application.properties
    文件中。这将根据实体验证数据库架构

  • 您可以创建一个单独的库,其中包含所有变更日志。之后,您可以将这个库包含到这两个服务中,所以liquibase将验证在应用程序部署期间是否执行了所有变更集。但是,您应该确保所有变更集都有先决条件,这样部署就不会失败,DB模式中也不会有任何重复项