数据版本管理和迁移工具Flyway用法最简说明

简介

数据库迁移及版本控制工具, 用于维护不同环境下数据库的一致性

使用

引入依赖

implementation("org.flywaydb:flyway-core:7.1.1")

配置

yaml 复制代码
spring:
  flyway:
    enabled: true
    locations: classpath:sql
    baseline-on-migrate: true
    clean-disabled: true

enabled: true # 开启Flyway(默认true)

locations: classpath:sql # 迁移脚本的位置(默认为classpath:db/migration)

baseline-on-migrate: true # 在没有元数据表的情况下,针对非空Schema执行迁移时是否自动调用基线, 开始执行基准迁移时对现有的schema的版本打标签, 默认版本值为1. 非空数据库则不执行V1_base.sql语句.

clean-disabled: true # 是否禁用clean操作,默认false,改为使用true

简单约定 迁移脚本放入sql/migration中, 基线版本命名为V1_base.sql

  1. 注释

    跨越整行的单行 (-) 或多行 (/* */) 注释

  2. 文件命名规则

    前缀+版本+分隔符+描述符+后缀: example-- V1.0__alter_user.sql 前缀:V用于版本化迁移、U撤消迁移、R可重复迁移

    版本:下划线(在运行时自动由点替换)分隔任意多个部分(不适用于可重复迁移)

    分隔符:(__两个下划线)

    描述:下划线(运行时自动替换为空格)分隔单词

  3. 升级规则

    springBoot应用运行时flyway会根据脚本进行数据库的初始化,执行的顺序会根据脚本版本号由低到高按顺序执行(1.0 -> 1.0.1 -> 1.0.2),每执行完一个版本脚本都会向记录表flyway_history_schema插入一条数据。

  4. 实用特性

    试运行模式 -- 不再修改数据库,而是将所有本应应用的 SQL 语句发送到试运行输出(调试)

    批处理模式 -- 批处理迁移脚本(高性能)

相关推荐
倔强的石头_7 小时前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
冬奇Lab20 小时前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
ClouGence1 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
无响应de神1 天前
三、用户与权限管理
数据库·mysql
麦聪聊数据2 天前
数据服务化时代:企业数据能力输出的核心路径
数据库
shushangyun_2 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
DARLING Zero two♡2 天前
【MySQL数据库】数据类型与表约束
数据库·mysql
曹牧2 天前
Oracle EXPLAIN PLAN
数据库·oracle
BD_Marathon2 天前
SQL学习指南——视图
数据库·sql
活宝小娜2 天前
mysql详细安装教程
数据库·mysql·adb