1

db-maintain 具有可重复脚本的概念,例如存储过程/触发器。当此类脚本发生更改时,需要再次推出。Flyway 似乎总是检查文件名约定。所以为了有一个可重复的脚本,我们可能需要重命名文件。有没有更有效的方法来做到这一点?

4

2 回答 2

3

Flyway 在 4.0 版本中开始支持可重复迁移。每次校验和更改时都会重新应用可重复迁移,并且可以在版本控制中将其作为单个文件进行维护。

您有责任确保可以多次应用相同的可重复迁移。这通常涉及在 DDL 语句中使用 CREATE OR REPLACE 子句。

更多细节在这里

于 2016-03-07T04:44:27.550 回答
2

此问题已出现在问题跟踪器其他问题中。

目前对此没有开箱即用的支持。

我个人会

  • 将可重复操作打包在存储过程或触发器中,并将其作为常规迁移的一部分添加到数据库中
  • 确保在此之后每次迁移都会调用一次此过程/触发器(可能是单行语句)
  • 确保在此之后对程序/触发器进行必要的更改,这也是常规迁移的一部分

如果还是不行,请随意给问题加注星标,并在评论中提供有关您的用例的详细信息。

更新:从 Flyway 4.0 开始,现在完全支持可重复的脚本。见https://flywaydb.org/documentation/migration/repeatable

于 2011-12-20T00:47:46.523 回答