我正在寻找一种在迁移之前和之后执行钩子脚本的方法.
我有一堆视图和存储过程,并希望过程是:
我有一堆视图和存储过程,并希望过程是:
>删除所有视图和存储过程.
>运行迁移.
>重建视图和存储过程.
这可确保对架构的任何更改都反映在相关视图和存储过程中.步骤(1)和(3)将是bash脚本.
这可能在Flyway?
解决方法
更新2014-04-29:通过实施FlywayCallback接口,现在可以通过Flyway 3.0实现.
以前的答案
简短的回答是:不,不是在这一点上.
原因如下:我想到了这一点以及我正在为Flyway设置初始设计.我越是想到这个方面,我越清楚地知道这些前后脚本也是迁移的一个组成部分,或者至少是迁移离不开的东西,如果它想要成功的话.因此,我建议:
>合并1,2和& 3在一次迁移中
>有3个单独的迁移x.1(删除视图),x.2(实际迁移),x.3(重建视图)
您甚至可以让x.1和x.3调用存储过程来为您工作,以避免在重复这些步骤时迁移之间的代码重复.
让Flyway负责执行对数据库结构的所有更改,使整个过程变得更加简单,避免混合使用不同的技术.