【发布时间】:2021-06-29 13:50:30
【问题描述】:
我想自动化一些堆栈迁移过程:Java、Maven、Spring-Boot、Postgres、Liquibase。
是否可以将一些 liquibase 更改日志推迟到特定的 maven 模块版本?
例子:
- 更改:
- changelog1.yaml
- changelog2.yaml
- 2.1: # 在 2.1 版部署期间执行
- changelog3.yaml
- changelog4.yaml
- 2.2: # 在 2.2 版部署期间执行
- changelog5.yaml
- changelog6.yaml
在部署 2.0 的情况下,只会应用前 2 个更改日志。
知道怎么做吗?
【问题讨论】:
-
有一种上下文机制:docs.liquibase.com/concepts/advanced/contexts.html。但看起来你在组织编码过程方面做错了。例如,您可以创建 git 标签并部署您想要的标签,该标签将只包含所需的更改。
-
假设我需要将某个列从 a 重命名为 b。我将从 a 创建一个新列 b 并重新部署所有 pod(应用程序实例),在重新部署期间,新旧 pod 可以一起工作。在下一个版本中,我将删除 a 列。你有什么缺点、cmets 或想法吗?
-
我知道问题是所有版本都已经存在?如果您在单独的分支中维护所有三个版本,我会将每个更改日志提交到与应该首先引入它的版本相对应的分支,然后可能会挑选提交到所有后续分支。此外,通常您会将 2.1 升级到 3.0,因为删除列不向后兼容
-
此方法需要开发人员操作。我需要自动化这个过程。我想要不采取行动的部署。
标签: java spring-boot maven liquibase