千家信息网

Springboot+Flyway管理项目SQL脚本怎么写

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,这篇文章给大家介绍Springboot+Flyway管理项目SQL脚本怎么写,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。测试包放在前面下载测试包 建议使用 GitZip for
千家信息网最后更新 2025年02月05日Springboot+Flyway管理项目SQL脚本怎么写

这篇文章给大家介绍Springboot+Flyway管理项目SQL脚本怎么写,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

测试包放在前面

  • 下载测试包 建议使用 GitZip for github 插件下载独立目录

  • 修改 application.yaml 数据库地址.

  • 启动后访问 http://localhost:8080/user/info/1

Flyway 的工作原理

flyway 需要在 DB 中先创建一个 metdata 表 (缺省表名为 flyway_schema_history), 在该表中保存着每次 migration 的记录, 记录包含 migration 脚本的版本号和 SQL 脚本的 checksum 值. 当一个新的 SQL 脚本被扫描到后, Flyway 解析该 SQL 脚本的版本号, 并和 metadata 表已 apply 的的 migration 对比, 如果该 SQL 脚本版本更新的话, 将在指定的 DB 上执行该 SQL 文件, 否则跳过该 SQL 文件.

版本号大小说明

两个 flyway 版本号的比较, 采用左对齐原则, 缺位用 0 代替. 举例如下:

  • 1.2.9.4 比 1.2.9 版本高

  • 1.2.10 比 1.2.9.4 版本高

  • 1.2.10 和 1.2.010 版本号一样高, 每个版本号部分的前导 0 会被忽略

脚本分类

Flyway SQL 文件可以分为两类:

  • Versioned

  • Repeatable

Versioned

Versioned migration 用于版本升级, 每个版本有唯一的版本号并只能 apply 一次

Repeatable

Repeatable migration 是指可重复加载的 migration. 一旦 SQL 脚本的 checksum 有变动, flyway 就会重新应用该脚本. 它并不用于版本更新, 这类的 migration 总是在 versioned migration 执行之后才被执行.

Migration SQL的命名规则图

其中的文件名由以下部分组成,除了使用默认配置外,某些部分还可自定义规则.

  • prefix: 可配置,前缀标识,默认值 V 表示 Versioned, R 表示 Repeatable

  • version: 标识版本号, 由一个或多个数字构成, 数字之间的分隔符可用点.或下划线_

  • separator: 可配置, 用于分隔版本标识与描述信息, 默认为两个下划线 '__'

  • description: 描述信息, 文字之间可以用下划线或空格分隔

  • suffix: 可配置, 后续标识, 默认为.sql

关于开发|生产环境版本说明

  1. 开发环境 SQL 文件建议采用时间戳作为版本号.

多人一起开发不会导致版本号争用, 同时再加上生产环境的版本号, 这样的话, 将来手工 merge 成生产环境 migration 脚本也比较方便, SQL 文件示例:

V20200317.1059__V1.0_Unique_User_Names.sqlV20180317.1459__V1.0_Add_SomeTables.sql
  1. 生产环境 SQL 文件, 应该是手动 merge 开发环境的 SQL 脚本, 版本号按照正常的版本, 比如 V2.1.5_001__Release.sql

关于Springboot+Flyway管理项目SQL脚本怎么写就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

版本 脚本 文件 环境 标识 开发 生产 配置 下划线 部分 项目 管理 两个 之间 信息 内容 建议 数字 更多 规则 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 锅炉控制系统软件开发 西安软件开发培训价格 学校网络安全实训目的 广州众合网络技术科技有限公司 文体局网络安全工作总结 思科模拟器网络安全实验 上海万言网络技术咨询 平度软件开发哪家便宜 第六届中国技能大赛网络安全 网络安全的环境有哪些 发货单管理软件开发 mac搭建服务器 上海朝夕网络技术有限公司电话 网络安全信息概念 江门总工会实名制数据库网址 数据库报表如何添加页码 违反学生网络安全规范会怎么样 数字乡村一日游软件开发 可信赖的软件开发公司 软管理服务器被破坏怎么办 闵行区网络技术咨询 网络安全共性知识 软件开发详细设计包含哪些 网络安全法白帽子规则 软件开发的文件路径 实训项目计算机网络技术 腾讯云服务器服务器管理器 金融网络安全工作建设汇报 人体体液蛋白组研究数据库 网页表格写入数据库
0