【问题标题】:How to do database schema testing across distinct applications that share the same schema如何跨共享相同架构的不同应用程序进行数据库架构测试
【发布时间】:2020-04-30 18:04:01
【问题描述】:

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

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

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

感谢您的宝贵时间!

【问题讨论】:

    标签: spring microservices liquibase datacontract pact


    【解决方案1】:

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

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

    2. 您可以创建一个包含所有更改日志的单独库。之后,您可以将此库包含到这两个服务中,因此 liquibase 将验证所有更改集是否在应用程序部署期间执行。但是你应该确保你所有的 changeSets 都有前置条件,这样你的部署就不会失败,数据库架构中也不会有任何重复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-10
      • 2020-10-15
      • 2010-09-25
      • 2022-01-08
      • 2020-01-17
      • 2021-10-18
      • 2015-06-10
      相关资源
      最近更新 更多