我正在寻找一种在迁移前后执行钩子脚本的方法。我有一堆视图和存储过程,并希望该过程是:
- 删除所有视图和存储过程。
- 运行迁移。
- 重建视图和存储过程。
这确保了对架构的任何更改都反映在相关的视图和存储过程中。步骤 (1) 和 (3) 将是 bash 脚本。
这在 Flyway 中可能吗?
2014 年 4 月 29 日更新:现在可以通过 Flyway 3.0 实现 FlywayCallback 接口。
简短的回答是:不,目前还没有。
原因如下:我在制定 Flyway 的初始设计时就考虑到了这一点。不过,我对这方面考虑得越多,我就越清楚这些pre 和 post 脚本也是迁移不可或缺的一部分,或者至少是迁移如果想要成功就离不开的东西。因此,我建议:
如果重复这些步骤,您甚至可以让 x.1 和 x.3 调用存储过程来为您完成工作以避免迁移之间的代码重复。
让 Flyway 负责执行对数据库结构的所有更改,这使整个事情变得更加简单,避免了不同技术的混合。