如果两个Flyway同时运行,它会自动安全地处理这个场景吗?

时间:2014-07-21 09:40:42

标签: flyway

我们有多个产品使用相同的数据库,每个产品都有自己的部署系统,这将最终触发Flyway,作为使数据库更新的过程的一部分。

如果两个项目同时部署并在同一时间运行Flyway怎么办? Will Flyway会尝试两次使用版本1,2,3还是会自动处理这种情况。

这可能会在某些情况下引起麻烦(例如,两次向表中添加3行)。

鉴于,这可能很少见,但可能会发生,我想知道Flyway是否认为这是开箱即用的?

我们在办公室讨论的解决方案是获取版本控制表的锁定。第二个实例必须等待锁定在应用其版本之前被释放,迫使它等待前一个实例完成,因此不会应用两次版本。

谢谢, 克里斯

Flyway

1 个答案:

答案 0 :(得分:1)

答案在Flyway's videos ...

大约30分钟见talk by Axel Fontaine

基本上,Flyway获取其版本控制表的锁定,因此所有其他实例都必须等待。