编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

Flyway的核心概念之Callbacks(回调)

wxchong 2024-06-19 22:26:14 开源技术 29 ℃ 0 评论

Callbacks(回调)

虽然迁移可以满足大多数需求,但是有时我们需要一遍一遍的重复执行相同的操作。比如编译存储过程、更新视图和不同类型的数据库清理。

因此Flyway为您提供了使用Callbacks 回调提供了一个迁移的生命周期的概念。

这些是Flyway支持的事件:

名称:执行

beforeMigrate: 在迁移之前运行

beforeEachMigrate:迁移期间的每次迁移之前

afterEachMigrate:在Migrate期间每次成功迁移之后

afterEachMigrateError: 在迁移期间每次迁移失败后

afterMigrate:成功迁移后运行

afterMigrateError:迁移失败后运行

beforeUndo--Flyway Pro:在撤消运行之前

beforeEachUndo--Flyway Pro:在撤消期间每次迁移之前

afterEachUndo-- Flyway Pro:在撤消期间每次成功迁移之后

afterEachUndoError--Flyway Pro: 在撤消期间每次单个失败的迁移之后

afterUndo--Flyway Pro:成功撤消后运行

afterUndoError--Flyway Pro:失败后撤消运行

beforeClean:在Clean运行之前

afterClean:成功完成Clean运行后

afterCleanError: 清洁运行失败后

beforeInfo:在Info运行之前

afterInfo:成功运行Info之后

afterInfoError: 信息运行失败后

beforeValidate:在验证运行之前

afterValidate:成功验证运行后

afterValidateError:验证失败后运行

beforeBaseline:在Baseline运行之前

afterBaseline:成功完成Baseline运行后

afterBaselineError: 基线运行失败后

beforeRepair:在修复运行之前

afterRepair:修复运行成功后

afterRepairError: 修复运行失败后

回调可以用SQL或Java实现。

SQL回调

可以使用Flyway生命周期最方便的方法是通过SQL回调。这些只是遵循某种命名约定的配置位置中的sql文件:事件名称后跟SQL迁移命名后缀。

使用默认设置,Flyway会加载其默认位置(<安装目录> / SQL)的文件到命令行工具),如beforeMigrate.sql,beforeEachMigrate.sql,afterEachMigrate.sql,...

占位符替换的工作方式与SQL迁移的工作方式相同。

另外回调还可以包括描述。在这种情况下,回调名称由事件名称,分隔符,描述和后缀组成。示例:beforeRepair__vacuum.sql。

当找到同一事件的多个SQL回调时,它们将按其描述的顺序执行。

注意:在扫描SQL回调文件时,Flyway还会尊重您配置的sqlMigrationSuffixes属性。。

Java回调

如果SQL Callbacks不够灵活,您可以选择自己实现 Callback 接口。您甚至可以在生命周期中挂载多个Callback实现。

更多信息: 基于Java的回调 </ p>

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表