【发布时间】:2023-04-09 22:17:02
【问题描述】:
假设我有 2 个分支:
使用迁移进行开发:
V1_change1
V2_change2
V3_change3
V4_change4
V5_change5
Master 迁移(部署在生产环境中):
V1_change1
V2_change2
现在我在生产上做hotfix,添加新的迁移V3_sth_completely_different,所以情况是:
使用迁移进行开发:
V1_change1
V2_change2
V3_change3
V4_change4
V5_change5
Master 迁移(部署在生产环境中):
V1_change1
V2_change2
V3_sth_completely_different
接下来,我正在合并部署到 master 的更改以进行开发(我正在使用支持分支来完成所有这些工作,但目前并不重要)。
我想拥有一致的数据库版本(V1、V2、V3 ...),所以我不想使用时间戳。因为没有回滚功能,所以我必须:
- 从数据库中手动移除 V3_change3、V4_change4、V5_change5 迁移
- 删除 schema_version 中的行
- 将名称 V3_change3 更改为 V6_change3(如果没有冲突,如果有我必须更改所有后续迁移)
我终于有了:
使用迁移进行开发:
V1_change1
V2_change2
V3_sth_completely_different
V4_change4
V5_change5
V6_change3
Master 迁移(部署在生产环境中):
V1_change1
V2_change2
V3_sth_completely_different
问题是:我是不是做得过火了?
如何管理使用 Flyway 保留简单版本号 V1、V2、V3... 的修补程序?
我现在使用的过程非常繁琐。
================================================ ==========================
【问题讨论】: