Version control 跨不同应用程序版本使用Liquibase的最佳实践是什么?

Version control 跨不同应用程序版本使用Liquibase的最佳实践是什么?,version-control,liquibase,Version Control,Liquibase,我想知道如何处理应用程序的版本控制以及Liquibase文件。假设我有4个应用程序版本:1.0、2.0、3.0、4.0。在4.0中,我有以下结构: > - 1.0-changeset.xml > - 2.0-changeset.xml > - 3.0-changeset.xml > - 4.0-changeset.xml > - changesetMaster.xml (include all above files) 应用程序的3.0版本分别只包含1.0、2.0

我想知道如何处理应用程序的版本控制以及Liquibase文件。假设我有4个应用程序版本:1.0、2.0、3.0、4.0。在4.0中,我有以下结构:

> - 1.0-changeset.xml
> - 2.0-changeset.xml
> - 3.0-changeset.xml
> - 4.0-changeset.xml
> - changesetMaster.xml (include all above files)
应用程序的3.0版本分别只包含1.0、2.0和3.0变更集文件(不含4.0)

现在我的问题是:如何处理不同应用程序版本中的错误修复,这些版本需要更改数据库?

例如,在3.0版中修复了一个bug。如果错误出现在4.0中,我是否应该在3.0应用程序版本中将更改添加到
3.0-changeset.xml
,在4.0应用程序版本中将更改添加到
3.0-changeset.xml
?或者在4.0应用程序版本中,我应该将其添加到
4.0-changeset.xml
?同样的问题也适用于只存在于3.0版本中的bug。我是否也应该为4.0版本添加一个补丁


一般来说,跨不同应用程序版本管理liquibase变更集文件的最佳方法是什么?

您的应用程序源代码存储在类似git的版本控制系统(VCS)中。对于不同的版本,您使用不同的分支

您只有一个liquibase changelog文件,其中包含从开始到当前开发版本的所有数据库更改。此更改日志与应用程序源代码一起存储在VCS中

当您修复当前开发分支以及版本4.0和3.0中的错误时,您将对每个分支进行提交,其中包含代码更改以及liquibase更改日志中的新更改集

在构建过程中,您可以从所需的分支签出软件和变更日志,然后构建应用程序。在部署过程中,安装新的应用程序代码,并对数据库运行liquibase
update