如何创建脚本并配置Flyway使其每次可通过SQL回调调用该脚本
Flyway SQL回调脚本创建及配置步骤
1. 创建符合命名规范的回调SQL脚本
Flyway的SQL回调脚本需要遵循固定命名规则,格式为:[触发时机]__[自定义描述].sql
注意:触发时机和描述之间是两个连续下划线
常用触发时机包括:
beforeMigrate:所有迁移脚本执行前运行afterMigrate:所有迁移脚本执行成功后运行beforeEachMigrate:每一个迁移脚本执行前都会运行afterEachMigrate:每一个迁移脚本执行成功后都会运行beforeClean:清理操作执行前运行afterClean:清理操作执行成功后运行
举个例子,如果你需要在每次迁移完成后执行自定义数据校验逻辑,可以创建脚本afterMigrate__data_validation.sql,文件内写入你需要执行的SQL语句即可。
2. 配置Flyway加载回调脚本
默认规则
如果你的回调脚本和普通迁移脚本放在同一目录(默认src/main/resources/db/migration),无需额外配置,Flyway会自动识别并加载。
自定义目录配置
如果你想把回调脚本单独存放,比如放到src/main/resources/db/callbacks目录,需要在Flyway配置中添加该路径到扫描位置:
Spring Boot项目(application.yml)示例:
spring: flyway: locations: classpath:db/migration,classpath:db/callbacks
Maven插件配置示例:
<plugin> <groupId>org.flywaydb</groupId> <artifactId>flyway-maven-plugin</artifactId> <version>你的Flyway版本号</version> <configuration> <locations> <location>classpath:db/migration</location> <location>classpath:db/callbacks</location> </locations> </configuration> </plugin>
命令行执行示例:
flyway migrate -locations=classpath:db/migration,classpath:db/callbacks
3. 效果验证
完成上述配置后,直接执行Flyway迁移操作,对应触发时机的SQL脚本就会被自动调用执行。
内容的提问来源于stack exchange,提问作者Maulik Dave
相关产品推荐
相关产品推荐

