Flyway:自动执行 SQL,并对 SQL 文件进行版本管理。
Spring Boot 自带 Flyway 的自动配置,所以只要添加 Flyway 的 jar 包引用,Flyway 就能自动执行。
Maven 中添加 Flyway 引用:
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>7.8.1</version>
</dependency>
Flyway 默认执行 resources/db/migration
中的 SQL 脚本。在 resources 目录下建立目录 db/migration,SQL文件放在这里即可。
SQL文件的命名规则见Flyway官方文档:
其他针对 Flyway 在 Spring Boot 中的配置,可以在各种查找到,以下介绍怎么在 Spring Boot 中为 Flyway 配置 Callback。
示例代码:
@Configuration
public class FlyRafterConfiguration {
@Bean
public FlywayConfigurationCustomizer flywayConfigurationCustomizer() {
return configuration -> configuration.callbacks(SQLCallback());
}
@Bean
public SQLCallback sqlCallback() {
return new SQLCallback();
}
}
public class SQLCallback implements Callback {
public boolean supports(Event event, Context context) {
return false;
}
public boolean canHandleInTransaction(Event event, Context context) {
return false;
}
public void handle(Event event, Context context) {
}
public String getCallbackName() {
return null;
}
}
在以上代码中通过 Spring Boot 自动配置中的 FlywayConfigurationCustomizer 来为 Flyway 添加 Callback。
欢迎关注我的博客:阿呜的边城
欢迎关注我的公众号:阿呜的编程