Spring Boot 2实战:使用Flyway管理你数据库的版本变更
副问题[/!--empirenews.page--]
1. 媒介 跟着项目标不绝迭代,数据库表布局、数据都在产生着变革。乃至有的营业在多情形版本并行运行。数据为王的期间,打点好数据库的版本也成为了急切的必要。怎样能做到像 Git 之类的版本节制器材来打点数据库?Java 项目中常用 Flyway 和 Liquibase 来打点数据库版本。个中 Flyway 相对来说较量受接待。 2. Flyway 的特点 Flyway 大受接待是由于它具有以下利益:
3. Flyway 的事变机制 Flyway 必要在 DB 中先建设一个 metadata 表 (缺省表名为 flyway_schema_history), 在该表中生涯着每次 migration (迁徙)的记录, 记录包括 migration 剧本的版本号和 SQL 剧本的 checksum 值。下图暗示了多个数据库版本。 对应的 metadata 表记录: Flyway 扫描文件体系或应用措施的类路径读取 DDL 和 DML 以举办迁徙。按照metadata 表举办搜查迁徙。假如剧本声明的版本号小于或便是标志为当前版本的版本号之一,将忽略它们。别的迁徙是待处理赏罚迁徙:可用,但未应用。最后按版本号对它们举办排序并按次序执行 并将执行功效写入 metadata 表。 对应的 metadata 表记录: Flyway 支持呼吁行(必要下载呼吁行器材)和 Java Api ,也支持构建器材 Maven 和 Gradle 。这里我们将眼光放在 Java Api 上。 3. Flyway 的法则 Flyway 是怎样较量两个 SQL 文件的先后次序呢?它回收 回收左对齐原则, 缺位用 0 取代 。举几个例子: 1.0.1.1 比 1.0.1 版本高。 1.0.10 比 1.0.9.4 版本高。 1.0.10 和 1.0.010 版本号一样高, 每个版本号部门的前导 0 会被忽略。 Flyway 将 SQL 文件分为 Versioned 、Repeatable 和 Undo 三种:
这三种的定名法则如下图:
4. Spring Boot 集成 Flyway Spring Boot 提供了对 Flyway 的自动设置 。使我们可以开箱即用 Flyway 举办数据库版本节制。 4.1 Flyway 依靠 你只必要引入依靠:
虽然你要集成你的相干数据库情形。这里我们回收 H2 数据库来演示,其余数据库同理只不外方言差异。不认识 H2 数据库的可参阅我的专题文章 Spring Boot 2 拭魅战:H2数据库集成以及行使 。 4.2 Flyway 设置 为了直观的讲授设置,起首在 Spring Boot 设置文件 application.yml 我们设置 H2 数据库为:
(编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |