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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解决maven项目没有Maven Dependencies的问题

    解决maven项目没有Maven Dependencies的问题

    本文介绍了如何在Eclipse IDE for Enterprise Java Developers版本2019-12中配置Maven项目,通过新建项目、下载、导入等步骤,并解决了在JavaBuildPath中缺少MavenDependencies的问题
    2026-05-05
  • C语言指针数组案例详解

    C语言指针数组案例详解

    这篇文章主要介绍了C语言指针数组案例详解,本文通过案例详细的解释了指针与数组的初始化还有关系与应用,需要的朋友可以参考下这篇文章
    2021-07-07
  • IDEA整合Dubbo+Zookeeper+SpringBoot实现

    IDEA整合Dubbo+Zookeeper+SpringBoot实现

    初学者,想自己动手做一个简单的demo,本文主要介绍了IDEA整合Dubbo+Zookeeper+SpringBoot实现,需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06
  • Java之经典排序算法

    Java之经典排序算法

    这篇文章主要介绍了Java的一些经典排序算法,对Java算法感兴趣的小伙伴可以详细参考阅读本文,对同学们有一定的参考价值
    2023-03-03
  • java对象序列化操作实例分析

    java对象序列化操作实例分析

    这篇文章主要介绍了java对象序列化操作,结合实例形式分析了java对象序列化操作相关实现步骤与操作注意事项,需要的朋友可以参考下
    2019-11-11
  • Java实现推箱子游戏

    Java实现推箱子游戏

    这篇文章主要为大家详细介绍了Java实现推箱子游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • 分页技术原理与实现之Java+Oracle代码实现分页(二)

    分页技术原理与实现之Java+Oracle代码实现分页(二)

    这篇文章主要介绍了分页技术原理与实现的第二篇:Java+Oracle代码实现分页,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • jenkins配置详细指南(附jdk多个版本配置)

    jenkins配置详细指南(附jdk多个版本配置)

    Jenkins是一款CICD(持续集成与持续交付)工具,Jenkins可以帮你在写完代码后,一键完成开发过程中的一系列自动化部署的工作,这篇文章主要给大家介绍了关于jenkins配置的相关资料,文中还附jdk多个版本配置指南,需要的朋友可以参考下
    2024-02-02
  • Java对List进行排序的方法总结

    Java对List进行排序的方法总结

    在Java中,对List进行排序是一项常见的任务,Java提供了多种方法来对List中的元素进行排序,本文将详细介绍如何使用Java来实现List的排序操作,涵盖了常用的排序方法和技巧,需要的朋友可以参考下
    2024-07-07
  • Java中关于size()>0 和isEmpt()的性能考量

    Java中关于size()>0 和isEmpt()的性能考量

    这篇文章主要介绍了Java中关于size()>0 和isEmpt()性能考量,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02

最新评论