我正在寻找一种在迁移之前和之后执行钩子脚本的方法。 我有一堆视图和存储过程,并希望过程是:
这可确保对架构的任何更改都反映在相关视图和存储过程中。步骤(1)和(3)将是bash脚本。
这可能在Flyway吗?
答案 0 :(得分:5)
更新2014-04-29:现在可以通过实施FlywayCallback接口实现Flyway 3.0。
简短的回答是:不,不是在这一点上。
原因如下:我想到了这一点以及我正在为Flyway设置初始设计。我越是想到这个方面,我就越清楚这些前后脚本也是迁移的一个组成部分,或者至少是迁移离不开它的东西。想要成功。因此我建议:
如果这些步骤重复,您甚至可以让x.1和x.3调用存储过程为您工作,以避免迁移之间的代码重复。
让Flyway负责执行对数据库结构的所有更改,使整个事情变得更加简单,避免混合使用不同的技术。
答案 1 :(得分:3)
扩展Axel's response:使用sql脚本进行回调只是意味着在包含迁移的目录中放置beforeMigrate.sql
(例如,这是一个关键字),Flyway将执行{{1}在其他迁移脚本之前。甚至在beforeMigrate.sql
被锁定之前。
其他回叫名称(例如schema_version
)列在documentation for callbacks。