springboot配置flyway(入门级别教程)

 更新时间:2023年09月12日 15:30:11   作者:Mayz梅子子子  
本文介绍了springboot配置flyway,主要介绍基于SpringBoot集成flyway来管理数据库的变更,具有一定的参考价值,感兴趣的可以了解一下

1、Flyway的工作原理

Flyway在第一次执行时,会创建一个默认名为flyway_schema_history的历史记录表,这张表会用来跟踪或记录数据库的状态,然后每次项目启动时都会自动扫描在resources/db/migration下的文件的版本号并且通过查询flyway_schema_history来判断是否有新增文件,从而判断是否进行迁移。默认的查找 migration 的路径为 classpath:db/migration ,对应 SQL 文件可放置在src/main/resources/db/migration 下,Java 类可放置在 src/main/java/db/migration 下。

2、sql脚本命名规则

  • 仅需要执行一次的,以大写“V”开头,V+版本后(版本号间的数字以“.” 或者“ _ ”分隔开,“ _ ”会自动编译成 “ . ” )+" __"+文件描述+后缀名;
  • 需要执行多次的,以大写“R”开头,命名如R__clean.sql ,R的脚本只要改变了就会执行,R不带版本号;
  • V开头的比R开头的优先级要高。

前缀:用于版本控制(可配置)、撤消(可配置)和可重复迁移(可配置)VUR)
版本:带有点或下划线的版本可根据需要分隔任意数量的部分(不适用于可重复的迁移)
分隔符:(两个下划线)(可配置)__)
说明:下划线或空格分隔单词
后缀:(可配置.sql)
(可选)版本控制 SQL 迁移还可以省略分隔符和说明

3、引入maven依赖

    <!-- flyaway工具 -->
    <dependency>
        <groupId>org.flywaydb</groupId>
        <artifactId>flyway-core</artifactId>
        <version>5.2.4</version>
    </dependency

4、添加yml配置项(不做专门配置说明的配置项按照默认值)

flyway.baseline-description对执行迁移时基准版本的描述.
flyway.baseline-on-migrate当迁移时发现目标schema非空,而且带有没有元数据的表时,是否自动执
行基准迁移,默认false.
flyway.baseline-version开始执行基准迁移时对现有的schema的版本打标签,默认值为1.
flyway.check-location检查迁移脚本的位置是否存在,默认false.
flyway.clean-on-validation-error当发现校验错误时是否自动调用clean,默认false.
flyway.enabled是否开启flywary,默认true.
flyway.encoding设置迁移时的编码,默认UTF-8.
flyway.ignore-failed-future-migration当读取元数据表时是否忽略错误的迁移,默认false.
flyway.init-sqls当初始化好连接时要执行的SQL.
flyway.locations迁移脚本的位置,默认db/migration.
flyway.out-of-order是否允许无序的迁移,默认false.
flyway.password目标数据库的密码.
flyway.placeholder-prefix设置每个placeholder的前缀,默认${.
flyway.placeholder-replacementplaceholders是否要被替换,默认true.
flyway.placeholder-suffix设置每个placeholder的后缀,默认}.
flyway.placeholders.[placeholder name]设置placeholder的value
flyway.schemas设定需要flywary迁移的schema,大小写敏感,默认为连接默认的schema.
flyway.sql-migration-prefix迁移文件的前缀,默认为V.
flyway.sql-migration-separator迁移脚本的文件名分隔符,默认__
flyway.sql-migration-suffix迁移脚本的后缀,默认为.sql
flyway.tableflyway使用的元数据表名,默认为schema_version
flyway.target迁移时使用的目标版本,默认为latest version
flyway.url迁移时使用的JDBC URL,如果没有指定的话,将使用配置的主数据源
flyway.user迁移数据库的用户名
flyway.validate-on-migrate迁移时是否校验,默认为true.

我的项目中只做了这些配置:

5、然后运行就可以看到数据库中多了一个flyway_schema_history表,会记录执行情况。

 到此这篇关于springboot配置flyway(入门级别教程)的文章就介绍到这了,更多相关springboot配置flyway内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 深入理解Java设计模式之策略模式

    深入理解Java设计模式之策略模式

    这篇文章主要介绍了JAVA设计模式之策略模式的的相关资料,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下
    2021-11-11
  • Spring-AOP @AspectJ切点函数之@annotation()用法

    Spring-AOP @AspectJ切点函数之@annotation()用法

    这篇文章主要介绍了Spring-AOP @AspectJ切点函数之@annotation()用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 最新SpringCloud Stream消息驱动讲解

    最新SpringCloud Stream消息驱动讲解

    SpringCloud Stream 是一个构建消息驱动微服务的框架,通过 SpringCloud Stream 连接消息中间件,以实现消息事件驱动,这篇文章主要介绍了SpringCloud Stream消息驱动,需要的朋友可以参考下
    2022-11-11
  • 详解java 中泛型中的类型擦除和桥方法

    详解java 中泛型中的类型擦除和桥方法

    这篇文章主要介绍了详解java 中泛型中的类型擦除和桥方法的相关资料,需要的朋友可以参考下
    2017-06-06
  • Java 反射机制的实例详解

    Java 反射机制的实例详解

    这篇文章主要介绍了Java 反射机制的实例详解的相关资料,希望通过本文能帮助到大家,让大家理解掌握反射机制,需要的朋友可以参考下
    2017-10-10
  • 解决SpringBoot在后台接收前台传递对象方式的问题

    解决SpringBoot在后台接收前台传递对象方式的问题

    这篇文章主要介绍了解决SpringBoot在后台接收前台传递对象方式的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • Mybatis逆工程的使用

    Mybatis逆工程的使用

    最近在学Mybatis,类似Hibernate,Mybatis也有逆工程可以直接生成代码(mapping,xml,pojo),方便快速开发。这篇文章给大家介绍Mybatis逆工程的使用相关知识,感兴趣的朋友一起看下吧
    2016-06-06
  • Java中的StringBuilder性能测试

    Java中的StringBuilder性能测试

    这篇文章主要介绍了Java中的StringBuilder性能测试,本文包含测试代码和测试结果,最后得出结论,需要的朋友可以参考下
    2014-09-09
  • 详解Java8中Optional的常见用法

    详解Java8中Optional的常见用法

    Opitonal是java8引入的一个新类,目的是为了解决空指针异常问题。本文将通过示例为大家详细讲讲Optional的常见用法,需要的可以参考一下
    2022-09-09
  • JavaWeb 入门:Hello Servlet

    JavaWeb 入门:Hello Servlet

    这篇文章主要介绍了Servlet开发JavaWeb工程示例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-07-07

最新评论