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

nil*_*gun 3 flyway

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

引用文章:

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

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

实际上,在某些情况下,您需要针对同一数据库重新运行迁移.这通常是由于迁移过程中某个位置失败导致您必须回溯成功迁移的步骤才能使数据库恢复工作状态.当发生这种情况时,以幂等方式编写迁移非常有用.

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

Axe*_*ine 5

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

版本化迁移只能运行一次,但不一定是幂等的(几乎没有任何好处).

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

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