SpringBoot集成Flyway

项目通过集成Flyway实现数据库版本控制

Flyway 简介

Flyway 是一个基于命令行的数据库版本控制工具,它允许开发者使用简单的脚本文件来管理数据库的升级和迁移。Flyway 支持多种关系型数据库,通过 Flyway,开发者可以轻松地跟踪和管理数据库模式的变化,以保持代码和数据库结构的一致性,并确保数据库的可迁移性。

一、添加依赖

			<dependency>
				<groupId>org.flywaydb</groupId>
				<artifactId>flay-core</artifactId>
				<version>${flyway.version}</version>
			</dependency>

根据项目使用数据库版本来确定${flyway.version},参考如下版本对应关系:

版本支持

– PostgreSQL
Flyway 5.x.x – 支持 PostgreSQL 8.0 及以上版本。
Flyway 6.x.x – 支持 PostgreSQL 9.4 及以上版本。
Flyway 7.x.x – 支持 PostgreSQL 9.5 及以上版本。
Flyway 8.x.x(最新版本) – 支持 PostgreSQL 9.6 及以上版本。

– Mysql
Flyway 6.x.x – 支持 MySQL 5.5 及以上版本。
Flyway 7.x.x – 支持 MySQL 5.6 及以上版本。
Flyway 8.x.x – 支持 MySQL 5.7 及以上版本。
Flyway 8.2.x – 支持 MySQL 8.0 及以上版本。

如遇到依赖无法下载问题可参考:https://blog.csdn.net/weixin_43762870/article/details/139114279

二、配置说明

spring:
  # flyway配置
  flyway:
    # 是否启用flyway
    enabled: true
    # 编码格式,默认UTF-8
    encoding: UTF-8  
    # 迁移sql脚本文件存放路径,官方默认db/migration 
    locations: classpath:db/migration
    # 迁移sql脚本文件名称的前缀,默认V
    sql-migration-prefix: V 
    # 迁移sql脚本文件名称的分隔符,默认2个下划线__ 
    sql-migration-separator: __ 
    # 避免带${}sql执行失败
    placeholder-prefix: '#('
    placeholder-suffix: )
    # 迁移sql脚本文件名称的后缀
    sql-migration-suffixes: .sql  
   # 迁移时是否进行校验,默认true  
    validate-on-migrate: true
    # 当迁移发现数据库非空且存在没有元数据的表时,自动执行基准迁移,新建schema_version表
    baseline-on-migrate: true
    # 是否关闭要清除已有库下的表功能,生产环境必须为true,否则会删库
    clean-disabled: true 

三、脚本命名

  1. 被执行一次的SQL命名以大写的"V"开头,后面跟上"0~9"数字的组合,数字之间可以用“.”或者下划线"_"分割开,然后再以两个下划线分割,其后跟文件名称,最后以.sql结尾。其中,“V”后面的数字表示版本号,用于控制脚本文件的执行顺序。
    V1__create_table.sql
  2. 可重复运行的SQL,则以大写的“R”开头,后面再以两个下划线分割,其后跟文件名称。
    R__update_sys.sql

执行成功:
初始化运行
默认会生成flyway_schema_history表,运行结果会记录在此表中
在这里插入图片描述

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值