数据库版本管理工具 -- Flyway

 

目录

一、Flyway简介

二、如何使用Flyway

三、核心概念

1、Migration

2、每个migration支持两种编写方式:

(1)java

(2)sql 

(3)所有的migration都需要遵守命名规范:

四、集成springboot

1、pom文件中引入依赖

2、application.yml

application.properties

3、在src/main/resources下新建/db/migration文件夹,并创建sql脚本文件:

4、启动项目即可

五、flyway的一些其他配置


一、Flyway简介

Flyway是一款开源的数据库版本管理工具,Flyway可以独立于应用实现管理并跟踪数据库的变更,Flyway根据自己的约定,不需要复杂的配置就可以实现数据的Migrate。Migrations可以写成SQL脚本,也可以写在Java代码中,不仅支持Command Line和java api ,也支持Build构建工具和Spring boot,也可以在分布式环境下能够安全可靠安全地升级数据库,同时也支持失败恢复。

Flyway最核心的就是用于记录所有版本演化和状态的MetaData表,Flyway首次启动会创建默认名为SCHEMA_VERSION的元素局表。 表中保存了版本,描述,要执行的sql脚本等;

二、如何使用Flyway

Flyway的运行机制很简单,其中Migrate是Flyway工作流的核心功能,主要目的就是把数据库Schema迁移到最新版本,Flyway每次在执行Migrate的时候会检测你的数据库中的flyway_schema_history表,如果它没有检测到,会自动创建一张新的flyway_schema_history表用于版本控制。当检测到你有新的版本需要迁移的时候,Flyway会逐一比对flyway_schema_history表中的已存在的版本记录,如果有未应用的Migrations,Flyway会获取这些Migrations并按次序Apply到数据库中,否则不需要做任何事情。另外,通常在应用程序启动时应默认执行Migrate操作,从而避免程序和数据库的不一致性。

更新flyway_schema_history中的版本记录用于以后的追踪。 

以上步骤Flyway都会自动替我们完成,所以在实际使用中我们真正需要注意的就是如何按照Flyway的约定去完成Migrations。 

三、核心概念

1、Migration


Flyway将每一个数据库脚本称之为:migrations,flyway支持三种类型的migration:

  • Versioned migrations:最常用的migration,可以简单的理解为数据库升级脚本
  • Undo migrations:数据库版本回退脚本,需要Pro版本,忽略,而且使用过程存在较大风险,undo操作目前只能通过plugin或者command-line来执行
  • Repeatable migrations:可重复执行的migration,例如create or replace脚本,当脚本checksums改变时会重新执行

2、每个migration支持两种编写方式࿱

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值