我是否应该担心在使用Flyway时创建幂等迁移?

时间:2016-06-30 21:09:07

标签: flyway

我一直在阅读一篇关于Flyway的博文,名为Lessons Learned Using Flyway DB with Distributed Version Control。作者的一个建议是创建幂等迁移。

引用文章:

  

在完美的世界中,每次迁移只会针对每次迁移运行一次   数据库中。

     

在一个完美的世界里,就是这样。

     

实际上,有些情况下您需要重新运行   针对同一数据库的迁移。通常这将是由于a   沿着这条线的某个地方迁移失败,导致你不得不这样做   在获取数据库之前,请回溯成功迁移的步骤   回到工作状态。当发生这种情况时,它会非常有用   以幂等方式编写迁移。

假设我使用支持DDL事务的数据库,在创建这些迁移sqls时我是否应该担心幂等性?

1 个答案:

答案 0 :(得分:5)

通常不会,尤其是当您拥有支持DDL事务的数据库时。

版本化迁移只能运行一次而且可以,但不必是幂等的(几乎没有任何好处)。

另一方面,可重复迁移必须是幂等的,因为它们会一遍又一遍地运行。

Flyway让您可以轻松地从头开始重新创建数据库,这是您在试验时应该采​​用的方法。