Picture Picture Picture Picture Picture Picture Picture

flyway的使用

换新工作 框架很新
有些东西没见过 现学一下
从 flyway开始
springboot整合教程
java写迁移脚本

概念

用途:Flayway是一款数据库版本控制管理工具,
    支持数据库版本自动升级,Migrations可以写成sql脚本,也可以写在java代码里;
    不仅支持Command Line和java api ,
    也支持Build构建工具和Spring boot,
    也可以在分布式环境下能够安全可靠安全地升级数据库,
    同时也支持失败恢复

运行方式

    首次启动会创建默认名为SCHEMA_VERSION的元素局表。 表中保存了版本,描述,要执行的sql脚本

    flyway找脚本的时候默认去src/mian/resources下面的db/migration

相关命令

Migrate是指把数据Schema迁移到最新版本,在Migrate时会检查MetaData元数据表,如果不存在就创建MetaData表,MetaData用于记录数据库历史变更等信息;
Migrate会扫描指定文件系统或者classpath下的Migrations。会与MetaData中的记录进行对比,进行版本升级;

Clean:清除掉对应数据库Schema中所有的对象,包括表结构,视图,存储过程等,clean操作在dev 和 test阶段很好用;

Info:用于打印所有的Migrations的详细和状态信息,也是通过MetaData和Migrations完成的,可以快速定位当前的数据库版本;

validate:验证以及apply的Migrations是否有变更,默认开启的;原理是对比MetaData表与本地Migrations的checkNum值,如果值相同则验证通过,否则失败。

BaseLine:对已经存在数据库Schema结构的数据库一种解决方案。实现在非空数据库新建MetaData表,并把Migrations应用到该数据库;也可以应用到已有表结构的数据库中也可以实现添加Metadata表。
repair:repair操作能够修复metaData表,该操作在metadata出现错误时很有用

使用步骤

  1.springboot来整合
  2.建src/db/migration文件夹
  3.建V开头+版本号+双下划线+描述.sql 脚本文件
  4.增加flyway的java类(执行数据迁移和读取配置文件)--可选
  5.数据库有了新的改动,导出新版本sql文件到db.migration 自动更新
posted @ 2020-08-07 17:05  云行雨步  阅读(392)  评论(0编辑  收藏  举报
Title - Artist
0:00