假设我有2个分支:
使用迁移开发:
V1_change1
V2_change2
V3_change3
V4_change4
V5_change5
迁移的主(在生产中部署):
V1_change1
V2_change2
现在我正在做生产修补程序,添加新的迁移V3_sth_completely_different,所以情况是:
使用迁移开发:
V1_change1
V2_change2
V3_change3
V4_change4
V5_change5
迁移的主(在生产中部署):
V1_change1
V2_change2
V3_sth_completely_different
接下来,我正在合并部署到master的更改以进行开发(我正在使用支持分支来完成所有这些工作,但目前并不重要。)
我想拥有一致的数据库版本(V1,V2,V3 ......)所以我不想使用时间戳。因为没有回滚功能,我必须:
最后我有:
使用迁移开发:
V1_change1
V2_change2
V3_sth_completely_different
V4_change4
V5_change5
V6_change3
迁移的主(在生产中部署):
V1_change1
V2_change2
V3_sth_completely_different
=============================================== =========================
答案 0 :(得分:1)
Flyway常见问题解答涵盖了What is the best strategy for dealing with hot fixes?下的内容。但是它使用了您希望避免的x.y版本号。另一种方法是将版本号乘以10或100,并使用inbetween整数表示修补程序。使用10将为您提供9个修补程序,或者100为您提供99。
答案 1 :(得分:0)
是的,我认为您想得太多。
为什么您需要“简单版本号”?就像@Hamish Carpenter所说的那样,Flyway的使用案例都用点号表示。这样,您不必执行所有繁琐的步骤(如您所说)即可摆脱所有旨在维护架构完整性的校验和。