像 liquibase 和 flyway 这样的工具当然可以轻松升级您的数据库。我没有弄清楚的是如何最好地处理发布分支和主干上发生的更改。
一个例子:
我在产品中的代码是 2.5 版,并且位于发布分支上。与此同时,开发人员已经开始开发基于主干的 3.0 版本。
在生产中发现了一个错误。制作了一个数据库更改脚本(2.5.1)并提交到发布分支。必须将相同的更改脚本合并回主干(3.0.1?)。
版本 3.x 已发布到野外生产数据库中,与 2.5.1 相比已经有了变化。升级可能会失败。
相反,如果我从头开始创建一个数据库,如果我使用的是仅向前策略,我会发生两次相同的更改(2.5.1 和 3.0.1)。
其他人如何处理这种情况?