【问题标题】:Liquibase -Drop Table Best PracticeLiquibase -Drop Table 最佳实践
【发布时间】:2022-11-04 03:17:17
【问题描述】:

在 DevOps (CI/CD) 场景中,当 Liquibase 由管道的特定步骤触发时,Liquibase 删除所有应用程序(微服务)数据库表并使用变更集重新创建所有 DDL/DML(仅用于测试和预-生产环境) ?\

如果是,为什么?

谢谢

【问题讨论】:

  • 不,它应该始终只前进,所以将所有应用到现有数据库。我不会删除/重新创建。这可以通过不在真实环境中的集成测试进行测试。或者它可以在 ci/cd 中针对空数据库进行测试(您可以使用 testcontainers)。

标签: database devops liquibase cicd drop


【解决方案1】:

Liquibase 旨在维护所有环境之间的数据库模型一致性。 当您将数据库放入其中之一时,您会破坏这种一致性,因为您也不想删除生产数据库。查看Roll Back the Database or Fix Forward? 文章

如果你需要删除一些表,你应该写额外的<dropTable>changeSet。

如果您需要在空数据库上测试初始应用程序部署,您始终可以使用容器,正如 cmets 中的 @bilak 所建议的那样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    • 2014-12-21
    • 2010-12-23
    • 2010-10-14
    相关资源
    最近更新 更多