java migrate_flyway学习之migrate
和小伙伴领了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相关推荐
- Java EE学习心得
–Java EE学习心得 1. 称为编程专家的秘诀是: 思考-----编程--------思考------编程--.. 编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程 ...
- java web学习项目20套源码完整版
java web学习项目20套源码完整版 自己收集的各行各业的都有,这一套源码吃遍所有作业项目! 1.BBS论坛系统(jsp+sql) 2.ERP管理系统(jsp+servlet) 3.OA办公自动化 ...
- 初级java开发学习路线_成为初级全栈Web开发人员的10分钟路线图
初级java开发学习路线 So you have started your journey into the world of web development. But what do you lea ...
- Java培训学习步骤有哪些
最近几年,有很多学习java技术的同学都有过半途而废的想法,认为java零基础是很难学会的,其实出现这样的问题,最主要的原因就是学习方法有问题,下面小编整理的Java培训学习步骤,希望能够帮助大家更有 ...
- Java入门学习注意事项有哪些?
想要学好java技术,做好学习规划路线和注意事项是非常重要的,尤其是零基础学员,Java涉及到的知识点非常多,我们需要制定合理的Java学习路线图,这样会事半功倍,下面小编和大家总结一下Java入门学 ...
- java培训学习阶段步骤讲解
目前的培训机构行业比较热门的IT技术就是java技术,java技术在近几年广受关注,java所涉及的技术知识也比较广泛,下面小编就为大家详细的介绍一下java培训学习多有哪几个阶段? java培训学习 ...
- Java多线程学习处理高并发问题
在程序的应用程序中,用户或请求的数量达到一定数量,并且无法避免并发请求.由于对接口的每次调用都必须在返回时终止,因此,如果接口的业务相对复杂,则可能会有多个用户.调用接口时,该用户将冻结. 以下内容将 ...
- 超硬核全套Java视频教程(学习路线+免费视频+配套资料)
文内福利,扫码免费领取 Hello,各位锋迷们,我是小千.很多学习Java的小伙伴都在找的全套免费java视频教程,这里全都有,资料齐全,拿来吧你! 零基础学Java的学习路线图是怎样的?! 曾经写过 ...
- java正则表达式 1,Java正则表达式学习(1)
Java正则表达式学习(一) 1.什么是正则表达式: 正则表达式(regular expressions) 是一种描述字符串集的方法,它是以字符串集中各种字符串的公有特征为依据的. 正则表达式可以用于 ...
最新文章
- 怎么用线程刷新 tkinter 进度条_tkinter做一个简易提词板(2)
- SVM推导过程及SMO详细求解过程(转载+自己笔记)
- java date加一天_Java日期时间API系列15-----Jdk8中API类,java日期计算2,年月日时分秒的加减等...
- mysql官网下载页面
- StorageManager
- MATLAB函数随笔画图篇
- DRAM发展年历——电容方向
- Xcode 10.1 安装模拟器无反应:点击create 无反应
- OAF: 怎样创建 DFF
- 京东云安装docker
- 游戏开发进度、状况以及结果的关系(个人感言)
- windows控制面板卸载程序失败(等待。。。)
- 总结MongoDB采用MongoRepository进行查询
- windows系统原版下载
- 普通电脑可以装苹果系统吗?Windows电脑装Mac系统
- Minotaur为Mesos,Kafka和Hadoop开发开源云
- iso烧录工具之rufus
- debian使用iso镜像搭建源
- 汇编中中括号的作用[]
- 黑群晖5.2安装指南(U盘启动硬盘启动)
热门文章
- PTA 7-1 jmu-ds-最长数字序列 (20 分)
- 自动生成数据库表结构word文档的工具(一)---- DBDocumentGenerator
- 根目录结构 Root directory structure
- 青岛市两化融合的政策
- IE播放wav格式录音解决方案
- 前端解决Unable to preventDefault
- 个人认为IT现在炒的比较热的东东[原创]
- Pytorch之parameters net.parameters()
- 高尔夫集团如何操作智能软件提前规避财务风险
- 操作系统学习3--Windows server 2012搭建web服务器