• 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依赖
        
        <dependency>
            <groupId>org.flywaydbgroupId>
            <artifactId>flyway-coreartifactId>
            <version>5.2.4version>
        
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    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.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

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

    在这里插入图片描述

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

    在这里插入图片描述

  • 相关阅读:
    【短文】在Windows显示所有当前打开的连接和监听的端口
    seata案例搭建
    NR 5G: Relaxed measurement
    云原生Kubernetes:K8S集群使用带凭证的harbor仓库
    SpringBoot中的WebMvcConfigurationSupport和WebMvcConfigurer
    【数据结构】堆的创建
    mysql 使用id in(‘1,2‘) 的时候,只能查到id=1的数据的解决方法
    20221106 今天的世界发生了什么
    会计基础——公式汇总
    Magento_CentOS安装
  • 原文地址:https://blog.csdn.net/weixin_44961626/article/details/132713607