首页 > 数据库 >数据库Migration Tools详解

数据库Migration Tools详解

时间:2022-11-14 01:00:10浏览次数:45  
标签:脚本 Flyway 数据库 flyway 详解 Migration 执行 Tools

简述

  Migration Tools是一个能帮你自动执行、管理和校验SQL脚本的工具。

  常见的Tools有Flyway、Liquibase、Mybatis Migrations

  这里我们介绍Flyway的使用

基本使用

  我们在项目中可以创建一个Migration文件夹,里面存放我们希望数据库执行的sql文件,文件名要符合规范

  Flyway的脚本类型分版本控制类和可重复执行类

  首先是版本控制类,分别由 V版本号__描述 组成

  可重复执行类

Flyway常用命令

  Flyway可以通过gradle插件的方式运行,在build.gradle中的plugins一栏加入Flyway插件

plugins {
    id "org.flywaydb.flyway" version "5.2.5"    
}

  然后在下方配置flyway的配置项

flyway {
    url = '数据库连接url'
    user = '用户名'
    password = '密码'     
}    

  然后就可以通过gradle命令行的方式运行Flyway命令,例如:

./gradlew flywayMigrate -i
Migrate 顺序执行当前所有脚本
Info 展示当前Migrate的状态信息,包含未执行的和已执行的
Validate 校验当前的Flyway脚本是否正确,会和数据库中已执行的脚本作比较
Baseline 在非空的数据库中初始化flyway,需查看flyway_schema_history当前应该新建的版本好号
Repair 清空当前执行错误的脚本,并更新有变化脚本的信息(谨慎使用)

Repair

  当一个脚本执行失败后,修改里面的内容再次执行也是会失败的,因为flyway会记录执行失败的checksum值

  就需要Repair命令,更新所有脚本,但需要慎重使用,因为可能会不小心改到对的脚本

  作为代替我们可以新增脚本,或者我们可以手动删除flyway_schema_history的错误字段

References

https://www.cnblogs.com/softidea/p/6249534.html

 

 

 

 

 

 

 

 

标签:脚本,Flyway,数据库,flyway,详解,Migration,执行,Tools
From: https://www.cnblogs.com/CNLayton/p/16875674.html

相关文章

  • Day10.2:九九乘法表打印详解思路
    九九乘法表打印按照以下格式对九九乘法表正确输出:/*1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2......
  • C# 之 Dictionary 详解
    https://blog.csdn.net/dmlk31/article/details/111206272.说明1、必须包含名空间System.Collection.Generic2、Dictionary里面的每一个元素都是一个键值对(由二个元素组......
  • html和css之背景样式详解
    背景样式详解opacity和display的区别opacity设置的是透明度,值的范围是0~1,0代表完全透明,1代表不透明display为none,浏览器就不会渲染这个元素。一个元素设置为display为none后......
  • mac ifconfig详解
    lo#loopback本机主机地址#flag=8049:网络设备状态标识#UP:网卡处于启动状态#LOOPBACK:IP数据包回送到本机上,通常用于测试网络配置和本地程序之间通信用#R......
  • Java中的抽象类详解
    概述由来父类中的方法,被它的子类们重写,子类各自的实现都不尽相同。那么父类的方法声明和方法主体,只有声明还有意义,而方法主体则没有存在的意义了。我们把没有方法主体的方......
  • Java中的super和this关键字详解
    父类空间优先于子类对象产生在每次创建子类对象时,先初始化父类空间,再创建其子类对象本身。目的在于子类对象中包含了其对应的父类空间,便可以包含其父类的成员,如果父类成员......
  • C++之string的底层简单实现!(七千字长文详解)
    C++之string的底层简单实现!string之私有成员变量namespaceMySTL{classstring {private: char*_str; size_t_size; size_t_capacity; //这里capa......
  • 详解主成分分析PCA与奇异值分解SVD-降维的实现方法【菜菜的sklearn课堂笔记】
    视频作者:菜菜TsaiTsai链接:【技术干货】菜菜的机器学习sklearn【全85集】Python进阶_哔哩哔哩_bilibili二维特征矩阵降维输入原数据,结构为$(3,2)$,即三个样本,每个样本两......
  • k8s之Pod详解(一)
    Pod介绍Pod结构每个Pod中都可以包含一个或者多个容器,这些容器可以分为两类:-用户程序所在的容器,数量可多可少-Pause容器,这是每个Pod都会有的一个根容器,它的作用有......
  • 详解数据预处理和特征工程-特征选择-Embedded嵌入法【菜菜的sklearn课堂笔记】
    视频作者:[菜菜TsaiTsai]链接:[【技术干货】菜菜的机器学习sklearn【全85集】Python进阶_哔哩哔哩_bilibili]嵌入法是一种让算法自己决定使用哪些特征的方法,即特征选择和......