You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建脚本并配置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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 13:57:00