和小伙伴领了flyway的卡,我们预期是一天完成,但在demo上卡住,所以超时了,用了几乎2天的时间完成。分析原因使我们的学习思路不清,我们要学习gradle插件方式的flyway migrate,但却完全不了解gradle.告诉老师我们的为题所在,在老师的讲解指导下,我们的产出划分为三个小demo:

1.gradle的小demo

github地址:https://github.com/MHwishes/gredle-hello-world/tree/master

2.gradle带轻量级插件的demo

github地址:https://github.com/MHwishes/gredle-hello-world/tree/plugin

3.gradle带插件flyway migrate的demo

github地址:demo.https://github.com/twa-rs-demos/flyway-migrate-demo

按照上面的思路,我们完成了最后的第三步。

现将我们学习的知识总结如下:

一.什么是flyway?

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

二.6种基本命令

Clean: 删除所有创建的数据库对象,包括用户、表、视图等

Migrate: 对数据库依次应用版本更改。

Info:获取目前数据库的状态。那些迁移已经完成,那些迁移待完成。所有迁移的执行时间以及结果。

Validate:验证数据库结构与迁移脚本的异同。

Baseline:根据现有的数据库结构生成一个基准迁移脚本。

三.运行方式

command-line,API(java/android),maven,gradle,ant,SBT

我们学习的重点是gradle,其余的就先不说了,想要理解详情的小伙伴请戳官网 https://flywaydb.org/

四.在gradle 中使用 flyway migrate

环境:

1.Java 版本在 6.0 以上

2.安装有 Gradle(安装地址:https://gradle.org/gradle-download/)

目录结构图

其中:每次修改以’V版本号__描述.sql’的方式命名。比如V1__Create_person_table.sql, V2__Add_people.sql,V3__Add_people.sql

Flyway会根据文件名自动识别版本顺序,并根据这些版本顺序来应用数据库修改。

执行迁移命令之前,我们先执行命令gradle flywayInfo -i,得到结果如下图:

待迁移表

执行命令gradle flywayMigrate -i实现迁移后得到如下信息:

迁移成功3个版本

再次执行命令gradle flywayInfo -i,可得如下的信息:

迁移成功信息表

有上可知数据库已完成迁移。

在在Gradle中的应用首先需要在Gradle中引入Flyway插件,通常有两种方式:

1.方式一:采用buildscript依赖方式。

buildscript

{ repositories { mavenCentral() }

dependencies {

classpath("org.flywaydb:flyway-gradle-plugin:4.0.3") }}

apply plugin: 'org.flywaydb.flyway'

2.方式二(推荐):采用DSL方式引用Plugins。

plugins {

id "org.flywaydb.flyway" version "4.0.3"

}

而在Gradle中配置Flyway Properties有两种方式:

1.方式一:在build.gradle中配置Flyway Properties。

flyway {

url = jdbc:h2:./.tmp/testdb

user = sa

password = }#

或者写成:

project.ext['flyway.url'] = 'jdbc:h2:./.tmp/testdb'

project.ext['flyway.user'] = 'sa'

project.ext['flyway.password'] = ''

2.在gradle.properties中配置Flyway Properties

flyway.url = jdbc:h2:./.tmp/testdb

flyway.user = sa

flyway.password =

java migrate_flyway学习之migrate相关推荐

  1. Java EE学习心得

    –Java EE学习心得   1.    称为编程专家的秘诀是: 思考-----编程--------思考------编程--.. 编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程 ...

  2. java web学习项目20套源码完整版

    java web学习项目20套源码完整版 自己收集的各行各业的都有,这一套源码吃遍所有作业项目! 1.BBS论坛系统(jsp+sql) 2.ERP管理系统(jsp+servlet) 3.OA办公自动化 ...

  3. 初级java开发学习路线_成为初级全栈Web开发人员的10分钟路线图

    初级java开发学习路线 So you have started your journey into the world of web development. But what do you lea ...

  4. Java培训学习步骤有哪些

    最近几年,有很多学习java技术的同学都有过半途而废的想法,认为java零基础是很难学会的,其实出现这样的问题,最主要的原因就是学习方法有问题,下面小编整理的Java培训学习步骤,希望能够帮助大家更有 ...

  5. Java入门学习注意事项有哪些?

    想要学好java技术,做好学习规划路线和注意事项是非常重要的,尤其是零基础学员,Java涉及到的知识点非常多,我们需要制定合理的Java学习路线图,这样会事半功倍,下面小编和大家总结一下Java入门学 ...

  6. java培训学习阶段步骤讲解

    目前的培训机构行业比较热门的IT技术就是java技术,java技术在近几年广受关注,java所涉及的技术知识也比较广泛,下面小编就为大家详细的介绍一下java培训学习多有哪几个阶段? java培训学习 ...

  7. Java多线程学习处理高并发问题

    在程序的应用程序中,用户或请求的数量达到一定数量,并且无法避免并发请求.由于对接口的每次调用都必须在返回时终止,因此,如果接口的业务相对复杂,则可能会有多个用户.调用接口时,该用户将冻结. 以下内容将 ...

  8. 超硬核全套Java视频教程(学习路线+免费视频+配套资料)

    文内福利,扫码免费领取 Hello,各位锋迷们,我是小千.很多学习Java的小伙伴都在找的全套免费java视频教程,这里全都有,资料齐全,拿来吧你! 零基础学Java的学习路线图是怎样的?! 曾经写过 ...

  9. java正则表达式 1,Java正则表达式学习(1)

    Java正则表达式学习(一) 1.什么是正则表达式: 正则表达式(regular expressions) 是一种描述字符串集的方法,它是以字符串集中各种字符串的公有特征为依据的. 正则表达式可以用于 ...

最新文章

  1. 怎么用线程刷新 tkinter 进度条_tkinter做一个简易提词板(2)
  2. SVM推导过程及SMO详细求解过程(转载+自己笔记)
  3. java date加一天_Java日期时间API系列15-----Jdk8中API类,java日期计算2,年月日时分秒的加减等...
  4. mysql官网下载页面
  5. StorageManager
  6. MATLAB函数随笔画图篇
  7. DRAM发展年历——电容方向
  8. Xcode 10.1 安装模拟器无反应:点击create 无反应
  9. OAF: 怎样创建 DFF
  10. 京东云安装docker
  11. 游戏开发进度、状况以及结果的关系(个人感言)
  12. windows控制面板卸载程序失败(等待。。。)
  13. 总结MongoDB采用MongoRepository进行查询
  14. windows系统原版下载
  15. 普通电脑可以装苹果系统吗?Windows电脑装Mac系统
  16. Minotaur为Mesos,Kafka和Hadoop开发开源云
  17. iso烧录工具之rufus
  18. debian使用iso镜像搭建源
  19. 汇编中中括号的作用[]
  20. 黑群晖5.2安装指南(U盘启动硬盘启动)

热门文章

  1. PTA 7-1 jmu-ds-最长数字序列 (20 分)
  2. 自动生成数据库表结构word文档的工具(一)---- DBDocumentGenerator
  3. 根目录结构 Root directory structure
  4. 青岛市两化融合的政策
  5. IE播放wav格式录音解决方案
  6. 前端解决Unable to preventDefault
  7. 个人认为IT现在炒的比较热的东东[原创]
  8. Pytorch之parameters net.parameters()
  9. 高尔夫集团如何操作智能软件提前规避财务风险
  10. 操作系统学习3--Windows server 2012搭建web服务器